关系数据库设计:用户列表

Relational database design: User lists

背景

我正在设计一个数据库,允许在我的网站上注册的人创建列表。这些列表将由用户组成。该功能将类似于 Twitter Lists。我正在使用 PHP 和 MySQL.

我目前的尝试

到目前为止,我想出了 2 tables:

用户(user_id,first_name,last_name)

列表(list_id,标题,描述)

我现在意识到我需要第三个 table 来连接两者,但我正在努力想出它应该具有的字段列表。我的第一个想法是我需要 idlist_iduser_id 字段,但我不确定这是否是正确的方法。

我的问题

我需要在我的第三个 table 中创建哪些字段才能连接我的 USERSLISTS table?

我相信,您将需要:

Creator ID - To store the id of the user that created the list;

List ID - To store the id of the List;

User ID - To store the id of the user in that list;

你所追求的是一个支点table。 您最终会得到您已经指定的三个 table。

USERS(
    user_id integer not null primary key,
    first_name text not null,
    last_name text not null
 )

LISTS(
    list_id integer not null primary key,
    title text not null,
    description text,
    created_by integer references USERS
)

USERS_LISTS (
    user integer not null references USERS,
    list integer not null references LISTS,
    unique (user, list)
)

USER_LISTS 是完成这项工作所需的多对多粘合剂。 id 字段是不必要的。