【发布时间】:2016-02-04 20:49:30
【问题描述】:
假设我有一个包含id、username、password、type 和linked_id 的登录表
type 列指定该登录名是属于员工还是客户。
如果他们是员工,linked_id 是他们在员工表中的 ID。
如果他们是客户,linked_id 是他们在客户表中的 ID。
直觉上,这似乎是个坏主意,但除了处理外键约束之外,我想不出也没有理由不这样做。
这也带来了另一个问题:在这种情况下拥有 FK 约束总是很重要吗?
想法?
【问题讨论】:
-
我会使用多列。如果看起来更乱(因为你有一堆空值),但有更好的数据库完整性和空值占用很少的磁盘空间。
-
是的,在这种类型的链接数据中具有 FK 约束总是好的。否则,很容易删除登录记录,留下孤立的客户或员工;或者在您的设计案例中,删除员工或客户记录并留下孤立的登录记录。
标签: mysql sql sql-server database foreign-keys