繁体   English   中英

多对多(实际上太多)关系的数据库设计

[英]Database design for many(few) to many(actually too many) relationship

我有两个表,用户和程序。 现在,我只有5-10个程序,成千上万的用户可以注册任何程序(也可以注册多个程序)。 因此,在存在多对多关系的情况下,我正在考虑创建一个单独的表,例如link_user_program,以存储用户注册了哪些程序。

但是,如果我有成千上万的用户并且只有10个程序,这会不会比仅存储在用户表中存储的程序(可能是逗号分隔的程序ID或每个程序的布尔列) 消耗更多的空间并增加查询时间

以上两种设计的优缺点是什么,还是有更好的选择? 如果将来可能会添加新程序(但仍然远远少于用户数量)怎么办?

从OO域设计的角度来看,建议使用多对多链接表; 不用担心多余的空间,在查询时间上,您可以设置索引以提高性能。

没有链接表,如果将来会使您难以添加/删除问题。

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM