我有一个名为Documents的表,它存储有关文档的文件名,注释等。相关领域是:
Document_ID
- 自动编号Document_Type_ID
- FK到查询表Document_Types
Table_Unique_ID
Table_Unique_ID
与其他表中使用的任何其他ID相关,我们知道相关Document_Type_ID
的哪个表。
E.g。
Document_Type_ID = 1
与Projects
表相关,因此Table_Unique_ID
为1357且Document_Type_ID
为1的文档记录表示它与{{1}相关}。
Project_ID = 1357
与Document_Type_ID = 2
表相关,因此Sites
为1357,Table_Unique_ID
为2的文档记录表示Document_Type_ID
为1357
等等。
这为我们在任何表格中Site_ID
,Projects
,Sites
等各种记录保留的文档类型提供了极大的灵活性,而不是创建单独的表格({{1 },Contacts
等。
但是已经指出使用传统的简单PK / FK关系更难(或不可能)强加数据完整性,因为1357可能与Project_Documents
相关或Site_Documents
。
目前,数据完整性由用户界面检查处理。
问题是,在插入Projects
记录或删除“其他”记录时,触发器或存储过程是否有帮助?记录(Sites
,Document
等)?
如果是这样,我真的很感激被指向正确的方向。
答案 0 :(得分:-2)
您的主要目标是什么?数据完整性,灵活性和简洁设计?这些是相互冲突的利益。如果你必须在没有触发器的情况下强制执行完整性,那么你必须有一个更丑陋的设计。必须始终在数据库设计中进行妥协。您将获得数据完整性精英主义者对这种设计有多糟糕的看法,但在一天结束时更值得标准化吗?