我有一个数据库模型,它使用几个表来保存业务逻辑数据;其中一个表包含一个用户表,用于保存UserID。代码从这些表中读取数据并生成应用程序中使用的json字符串。为了避免重做查询并重新创建json字符串,我将json字符串存储在一个只有2列的表调用JsonCache中:UserID和JsonCacheWork。每个用户都有多个JsonCacheWork条目(条目将自己添加为用户交互的结果)。
目前,我的数据库图表与User表和JsonCache表之间没有任何关系。它似乎工作正常。
为什么我需要/想要在2个表之间添加关系以及保持我的数据库图表的优势(如果有的话)。
感谢您的解释。
答案 0 :(得分:2)
您可以添加表之间的关系,以告知数据库管理系统这两个表中的记录是否相关。 DMS可以强制执行此关系,这意味着您不会错误地使用不存在的UserId向JsonCache表添加记录。
此外,当删除另一个表中的相关记录(级联删除)时,外键约束可用于自动删除一个表中的记录。因此,当您删除用户时,DMS将为您删除其在JsonCache中的条目。
Sql Server是关系数据库,表之间的关系是数据库模式的关键部分。它们有助于维护数据完整性。
答案 1 :(得分:1)
如果两个实体之间存在多对多关系,则必须在两者之间建立连接表。我会说,由于用户和JSON是一对一的,我会质疑使用两个独立的实体。我将JSON放在用户表中,然后只按用户ID查询。我没有看到只有JSON的两列的单独表的原因。
如果JSON具有保质期,我可能会改变主意:有效期和到期日,单个用户的历史记录等。