我对两个表之间的关系有疑问。
假设我们有一个表用户和链接。
users
+++++++++
id name
1 name1
2 name2
3 name3
+++++++++
links
+++++++++
id link
1 link1
2 link1
3 link1
+++++++++
现在链接这两者的正常方法是使用 name_links 表。例如:
name_links
++++++++++++
uid lid
1 1
1 3
2 3
2 1
2 2
3 2
++++++++++++
现在我想知道制作这样的桌子是否是个好主意
name_links
++++++++++++
uid lid
1 1,3
2 1,2,3
3 2
++++++++++++
我能想到的优点和缺点是:
优点1:
您将始终搜索索引,更快的查询示例选择 where uid=1,然后选择链接 1,3。两者都是索引,因此加载速度很快。
如果您有 1000 个用户,并且他们每个人都有 20 个链接,这意味着您必须通过 20.000 条记录才能获得所有链接(我认为,不确定这一点)。使用这种方法,你只需要一个索引就可以了。
缺点1:
您将不得不更频繁地更新 name_links 表,读取、编辑和写入示例用户 2 删除链接 2 方法将是:
+ 获取用户 1
的字符串 + 从字符串中删除数字
+ 插入新字符串这里的一切都是在索引上完成的,所以我认为它会很快。
缺点2:
另一个缺点是当您删除链接 2 时,您必须遍历所有字符串,但可以说这不是什么大问题,因为这种情况不会经常发生。
到目前为止,这是我能想到的,而我正处于我的项目的关键点,我必须决定选择哪一个。
我很想就选择哪种方法提供一些建议。我有我的优点和缺点吗?有没有我没有考虑的事情。对此主题的任何帮助将不胜感激。
谢谢你们!