小编tca*_*vin的帖子

使用多列作为位置或超类型/子类型?

给定一个设备实体,它有一个位置,通常称为行踪。这可以参考:

  • 用户实体(将在下周使用并负责设备的员工)。

  • 供应商实体(如果设备正在维修)。

  • 一个 StorageLocation 实体(如果设备已放好)。

一件设备一次只能在一个地方,即使那个地方不是物理位置。

这个会比较好吗:

  • 拥有具有三列(UserId、VendorId、StorageLocationId)的设备,以便其中一列必须不为空,而另外两列必须为空(由约束强制执行)?

  • 或者让 Equipment 的 WhereaboutsId 引用某种类型的超类型表,然后作为子类型表链接到 User、Vendor 和 StorageLocation,即使它们不共享其他公共属性?

  • 或者是其他东西?

database-design sql-server

6
推荐指数
1
解决办法
268
查看次数

标签 统计

database-design ×1

sql-server ×1