SQL Server多个外键 - 仅允许和限制设置1个外键

时间:2015-02-18 14:18:04

标签: sql-server foreign-keys foreign-key-relationship check-constraints check-constraint

我有以下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. 交易
  6. 这一个表存储这些上传的文档并将其链接到相关实体。它的结构允许我稍后通过向Document表中添加一个外键来添加将文档上传到其他表的功能。

    我制作了所有外键"稀疏"用于保存空间的列,因为这些列中只有一列具有值。

    重要规则:必须完全链接到1个表。无法链接到无表,无法链接到多个表。

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

    请有人推荐一个解决方案。

0 个答案:

没有答案