我有一个同事,他总是把混合内容放在一个专栏中。例如,我正在努力解决的当前案例是一个名为“opts”的列,它是一个整数数组。根据当前行中甚至不存在的类型,您必须加入另一个表才能找到它,此列可能包含:
- 0 或 1 - 表示开/关状态
- 表中的 ID 列表
- 来自第二个表的 ID 列表
- 在任何其他情况下为 null
对我来说,这看起来更像是混乱而不是有条理的数据。那么这是否违反了数据库设计概念,或者只是我的强迫症?当我试图说服他不要再这样做时,我的论点应该是什么?
我想补充一点,由于不值得深入的原因,表中的 ID 不需要外键,同事也用其他东西来做这个,因为另一个表中的另一列有一个字符串或一个 json 文本. 在这些情况下我会做的是有更多的列,每种情况一个,只完成其中一个,其余的保留为空。