我的数据库设计以前是相当线性的,所以我被一个可能很容易解决的问题所困扰。
我有一个“帖子”表,其中包含可能是“类别”或“主题”子级的帖子。定义“POSTS”表外键的最佳方法是什么?
我想我可以有一个名为 POST_CATEGORY_ID 的列和一个名为“POST_TOPIC_ID”的字段,该字段可以为空,但这听起来不对。当然,我缺少一个简单的解决方案!
最佳答案
您的方向正确,POST_CATEGORY_ID 和 POST_TOPIC_ID 字段可为空。这将对帖子进行建模,该帖子可以选择与类别相关,也可以选择与主题相关。
如果这意味着排他性和强制性,您将需要添加一个检查约束,其中一个为空,但不能同时为空。
关于database-design - 多个外键,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/675785/