1

我有以下 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)

此表存储上传的文档。可以为各种实体上传文件:

  1. 用户
  2. 组织
  3. 客户
  4. 联系人
  5. 交易

这个表存储那些上传的文档并将其链接到相关实体。它的结构允许我稍后通过向 Document 表添加外键来添加将文档上传到其他表的功能。

我将所有外键设为“稀疏”列以节省空间,因为这些列中只有 1 个具有值。

重要规则:必须准确链接到 1 个表。不能链接到没有表,不能链接到超过 1 个表。

如何在数据库级别确保这一点。我正在考虑使用检查约束——但它的语法可能会变得复杂(如果我们为 20 个不同的表上传文档会怎样)。

有人可以推荐一个解决方案吗?

4

0 回答 0