因此,我正在尝试开发一个小型应用程序,它可以让您拥有一个可供多人通过手机编辑的购物 list 。所以我正在尝试设计将在后端使用的数据库。我无法弄清楚如何关联所有表格。用户将能够属于多个列表,并且每个列表都可供多人访问。 (我相信这就是所谓的多对多关系?) 到目前为止,我的表格如下所示:
User(id, name)
List(id, Name)
List_item(id, List_id(key), name, amount)
列表到 list_item ID 的关系很简单,但是如何对用户和列表之间的关系进行建模?我需要一个单独的连接表吗:
User-to-List(User ID,List ID)
我正在尝试提出尽可能最有效的结构,谢谢!
编辑:只有用户需要知道与他关联的所有列表,列表不需要跟踪与它关联的用户。至少对于最初的应用程序来说是这样!
最佳答案
多对多:
CREATE TABLE ListsUsers (
list_id ...,
user_id ...,
PRIMARY KEY(list_id, user_id),
INDEX(user_id, list_id)
) ENGINE=InnoDB;
然后在执行 SELECT
时使用合适的 JOIN
连接表。
关于mysql - 数据库设计: User can be part of many lists,并且列表可以与多个用户关联,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/33245047/