因此,我正在努力开发一款小型应用,让您拥有可由多人通过手机编辑的购物清单。所以我试图设计我将在后端使用的数据库。我无法弄清楚如何将所有表格联系起来。用户可以分成多个列表,每个列表可供多人访问。 (我相信这被称为多对多关系?) 到目前为止,我的表格如下:
User(id, name)
List(id, Name)
List_item(id, List_id(key), name, amount)
list_item ID关系列表很容易,但我如何建模用户和列表之间的关系?我需要一个单独的连接表:
User-to-List(User ID,List ID)
我试图尽可能提出最有效的结构,谢谢!
编辑:只有用户需要知道与之关联的所有列表,列表不需要跟踪哪个用户与之关联。至少对于最初的应用程序!
答案 0 :(得分:0)
许多一对多:
CREATE TABLE ListsUsers (
list_id ...,
user_id ...,
PRIMARY KEY(list_id, user_id),
INDEX(user_id, list_id)
) ENGINE=InnoDB;
然后在执行JOINs
时使用合适的SELECT
来连接表。