我有以下SQL表:
Table: dbo.Document
_________________________________________________
docID bigint (PK: required)
docTypeID bigint (required)
UploadName varchar(500) (required)
FileSize bigint (required)
DateUploaded datetimeoffset(7) (required)
tbl_userID bigint (nullable)
tbl_orgID bigint (nullable)
tbl_clientID bigint (nullable)
tbl_contactID bigint (nullable)
tbl_transactID bigint (nullable)
此表存储上载的文档。 可以为各种实体上传文件:
这一个表存储这些上传的文档并将其链接到相关实体。它的结构允许我稍后通过向Document表中添加一个外键来添加将文档上传到其他表的功能。
我制作了所有外键"稀疏"用于保存空间的列,因为这些列中只有一列具有值。
重要规则:必须完全链接到1个表。无法链接到无表,无法链接到多个表。
如何在数据库级别确保这一点。 我正在考虑使用检查约束 - 但其语法可能会变得复杂(如果我们为20个不同的表上传文档,那该怎么办)。
请有人推荐一个解决方案。