数据库设计:用户可以是许多列表的一部分,列表可以与多个用户关联

时间:2015-10-20 19:16:01

标签: mysql sql database sqlite database-design

因此,我正在努力开发一款小型应用,让您拥有可由多人通过手机编辑的购物清单。所以我试图设计我将在后端使用的数据库。我无法弄清楚如何将所有表格联系起来。用户可以分成多个列表,每个列表可供多人访问。 (我相信这被称为多对多关系?) 到目前为止,我的表格如下:

User(id, name)
List(id, Name)
List_item(id, List_id(key), name, amount)

list_item ID关系列表很容易,但我如何建模用户和列表之间的关系?我需要一个单独的连接表:

User-to-List(User ID,List ID)

我试图尽可能提出最有效的结构,谢谢!

编辑:只有用户需要知道与之关联的所有列表,列表不需要跟踪哪个用户与之关联。至少对于最初的应用程序!

1 个答案:

答案 0 :(得分:0)

许多一对多:

CREATE TABLE ListsUsers (
    list_id ...,
    user_id ..., 
    PRIMARY KEY(list_id, user_id),
    INDEX(user_id, list_id)
) ENGINE=InnoDB;

然后在执行JOINs时使用合适的SELECT来连接表。