我有两个表,用户和程序。现在我只有5-10个程序和成千上万的用户,他们可以注册任何程序(也可以注册多个程序)。因此,在多对多关系的情况下,我想创建一个单独的表,比如link_user_program,来存储用户注册的程序。
但如果我有成千上万的用户和10个程序,那么消耗额外的空间并增加查询时间不仅仅是存储在用户表中注册的程序(可能是以逗号分隔的程序)每个程序的ID或布尔列)?
上述两种设计的优点和缺点是什么,还是有更好的选择?如果有可能在未来添加新程序(但仍远远少于用户数),该怎么办?
答案 0 :(得分:0)
从OO域设计的角度来看,建议使用多对多的链接表; 忘记额外的空间,对于查询时间,你可以设置索引来提高性能。
没有链接表,如果将来很难添加/删除问题。