database-design - 多个外键

标签 database-design normalization

我的数据库设计以前是相当线性的,所以我被一个可能很容易解决的问题所困扰。

我有一个“帖子”表,其中包含可能是“类别”或“主题”子级的帖子。定义“POSTS”表外键的最佳方法是什么?

我想我可以有一个名为 POST_CATEGORY_ID 的列和一个名为“POST_TOPIC_ID”的字段,该字段可以为空,但这听起来不对。当然,我缺少一个简单的解决方案!

最佳答案

您的方向正确,POST_CATEGORY_ID 和 POST_TOPIC_ID 字段可为空。这将对帖子进行建模,该帖子可以选择与类别相关,也可以选择与主题相关。

如果这意味着排他性和强制性,您将需要添加一个检查约束,其中一个为空,但不能同时为空。

关于database-design - 多个外键,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/675785/

相关文章:

image-processing - 不同尺度的 HOG 特征

mysql - 数据库数据标准化?

java - 向并发用户分配数据

database - 以低成本方式托管大型表并保持性能可扩展?

database-design - 如何将商品与定价数据正确关联,同时考虑价格变化历史

mysql - 正确的mysql(关系型)数据库设计结构是什么

sql-server - sql server 2008 - 添加约束

mysql - 我应该复制数据还是使用复杂的查询

search - 我如何对solr/lucene分数进行归一化?

sql - MySQL:许多连接或额外的外键?