您是否应该将表名存储在表中?

时间:2018-03-20 11:12:56

标签: sql database database-design

我正在创建一个应用,其中1个用户将监控其他用户的进度。这个监视器可以随着时间的推移而改变,所以我想建立一个笔记记录过程。每个受监控的用户都会有一组与之关联的备注,以供将来的监控人员查看。

我希望每个用户都有自己的笔记表,因为我担心如果有大量不同用户的笔记,那么看起来就会很忙。

我的想法是,如果我将所有笔记存储在1个表中,每个表都有const firstName = name2.split(' ')[0] 作为外键,如果我必须查找1个用户的所有笔记,我必须搜索整个表。其中,如果每个人都有自己的表格,我可以确切地知道该特定用户的所有笔记所在的位置。  我接近这个的方法是让一个表用户:

user_id

和另一个特定于受监控用户的单独表格,假设有很多这些

User_Monitored
--------
+user_id
...

和介于每个用户之间的第3个表以及他们与

相关联的表格
User_Monitored_Notes_(id)
--------------------
+note_id
+note

我应该采取更好的方式吗?我觉得有一个表直接了解数据库结构是不是没有。

1 个答案:

答案 0 :(得分:1)

您需要一个表,如果需要,可以为性能添加user_id索引。从数百万行返回结果集将以毫秒为单位进行测量。

note_id | user_id |注

即使你确实使用了单独的表,你的表名的ID也会存储在User_Monitored中 - 不需要复制它。

如果您确实想要引用数据库中的表,它已经自动构建,您可以使用它来确定表是否存在。

SELECT * FROM sys.tables