我目前正在研究将通过实体框架访问的 SQL Server 关系数据库。我有几个问题似乎无法找到正确的答案。
请看我的数据库模型图:
1.
我不太确定ProblemType
实施是否正确。正如现在已经设置的那样,两列都允许输入空值,ProblemType
因为它将包含 aProblemTypeRoadID
或 a ProblemTypeVandalismID
。所以问题真的是是否可以通过删除ProblemType
表格和在表格中关联和关联ProblemTypeRoad
来ProblemTypeVandalism
对模型进行反规范化ProblemDesc
?
2.
查看Problem
表格,您会发现一列名为HistoryIDs
。此列应包含一个以逗号分隔的字符串,其中包含HistoryIDs
与 a 相关的所有内容Problem
。AHistoryID
本质上是 a ProblemDescID
(因为 a在更新时ProblemDesc
将其IsHistory
列设置为 true),因为ProblemDesc
在更改时会复制 a。我的问题是:ProblemDescIDs
向HistoryIDs
列添加多个的最佳方法是什么?如果它是“1,5,7”之类的东西,那么很容易找到给定的所有历史记录ProblemDesc
。
3. 对图表的任何其他建议也非常欢迎:)
提前致谢!
编辑:请考虑修改后的图表:
既然您给了我一些很好的改进建议,我已经尝试实施您的大部分建议。ProblemType
已被删除并ProblemHistory
添加。还对其父表的方式WorkerComment
和关系进行了更改。Media
这种实施会奏效吗?
谢谢!