#sql #node.js #sqlite #node-sqlite3
#sql #node.js #sqlite #узел-sqlite3
Вопрос:
Я относительно новичок в sql и пытаюсь создать отношения между двумя пользователями. Чтобы дружить друг с другом, необходимо отправить и принять запрос на дружбу. Теперь у меня есть третья таблица под названием «Предметы». Теперь пользователь должен иметь возможность видеть все предметы, принадлежащие его друзьям. Я вроде как застрял, написав этот запрос…
таблица товаров:
CREATE TABLE IF NOT EXISTS item( id INTEGER PRIMARY KEY AUTOINCREMENT NOT NULL, owner VARCHAR(50) NOT NULL, borrowedBy VARCHAR(50), imageUrl TEXT );
стол дружбы:
CREATE TABLE IF NOT EXISTS friendship( friendship_id INTEGER PRIMARY KEY AUTOINCREMENT NOT NULL );
дружеские отношения с пользователем
CREATE TABLE IF NOT EXISTS user_friendship( username VARCHAR(50) NOT NULL, friendship_id INTEGER NOT NULL, status INTEGER NOT NULL, PRIMARY KEY (username, friendship_id) );
Комментарии:
1. В чем заключается ваш вопрос? Пожалуйста, покажите примерные данные, фактические результаты и ожидаемые результаты.
2. в чем смысл вашего дружеского стола здесь, пожалуйста, дайте больше полезной информации
3. возможно, вам потребуется оптимизировать свою структуру
Ответ №1:
Вам нужно ознакомиться с учебными пособиями о том, как создать базу данных SQL, в основном на основе взаимосвязи таблиц.
Здесь, например, вам не нужна отдельная таблица дружбы и дружбы пользователей.
У тебя мог бы быть один столик для дружбы:
CREATE TABLE IF NOT EXISTS friendship( friendship_id INTEGER NOT NULL, username1 VARCHAR(50) NOT NULL, username2 VARCHAR(50) NOT NULL, status INTEGER NOT NULL, PRIMARY KEY (friendship_id, username1 , username2 ) );
Обратите внимание, что для внешних ключей следует использовать целочисленное значение, а не varchar(50).