Мне нужно создать базу данных для хранения отдельных списков акций, связанных с отдельными пользователями, с указанием количества акций каждой акции. Я попытался построить таблицу «балансов», в которой каждая строка была связана с идентификатором пользователя и запасом, но она быстро запуталась, и мне было интересно, есть ли лучший способ сделать это. Вот схема текущих таблиц:

CREATE TABLE users (id INTEGER PRIMARY KEY AUTOINCREMENT NOT NULL, username TEXT NOT NULL, hash TEXT NOT NULL, cash NUMERIC NOT NULL DEFAULT 10000.00);
CREATE TABLE IF NOT EXISTS 'balances' ('id' INTEGER NOT NULL, 'shares' INTEGER NOT NULL, 'symbol' TEXT NOT NULL);
-4
Tommaso Clini 27 Сен 2022 в 21:36

1 ответ

Использование внешнего ключа может быть немного лучше вашего.

CREATE TABLE users (id INTEGER PRIMARY KEY AUTOINCREMENT NOT NULL, username TEXT NOT NULL, hash TEXT NOT NULL, cash NUMERIC NOT NULL DEFAULT 10000.00);
CREATE TABLE IF NOT EXISTS 'purchases' ('user_id' INTEGER NOT NULL, 'shares' INTEGER NOT NULL, 'symbol' TEXT NOT NULL, FOREIGN KEY (user_id) REFERENCES user (id));
0
shah sawood 27 Сен 2022 в 21:48