【问题标题】:How to design a friend list in sql /sqlite如何在 sql /sqlite 中设计好友列表
【发布时间】:2022-01-08 23:33:26
【问题描述】:

我对 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
        );

user_friendship

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)
    );

【问题讨论】:

  • 您的问题是什么?请展示样本数据、实际结果和预期结果。
  • 这里的友谊表是什么意思,请提供更多有用的信息
  • 你可能需要优化你的结构

标签: sql node.js sqlite node-sqlite3


【解决方案1】:

你需要看一下如何构建SQL数据库的教程,主要是表关系。

例如,这里不需要单独的friendship 和user_friendship 表。

你可以有一张友谊表:

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)。

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 2012-07-30
    • 2011-06-08
    • 1970-01-01
    • 2012-05-24
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2011-08-05
    相关资源
    最近更新 更多