我了解到SO已将问题和答案放在同一张表中。他们说一个问题不会有父ID,答案会有父ID。为什么这样做更好,而不是将问题和答案放在单独的表中?
答案 0 :(得分:2)
有几个原因:
查看此问题的最佳方法是通过某些用例运行特定模型。
例如:以某种顺序列出用户的所有帖子(投票,日期等)。在两个表中你最终会做某种UNION,这实际上并不是不可取的。如果它们存储在同一个表中,那就容易多了。如果您只想将其限制为问题或答案,那么同一个表仍然很容易,因为它只是一个额外的标准(例如WHERE parentID对于问题是空的)。
答案 1 :(得分:1)
Cletus是正确的,但请记住,通过这样做,您正在对数据库进行非规范化,因为尽管答案和问题相似,但它们并不相同。特别是一个问题有很多答案,但每个答案只属于一个问题 - 你将开始在表格中存储冗余重复数据。虽然根据您的基础设施可能会有一些速度/开发优势,但如果你告诉任何数据库管理员他们会有心脏病发作:-)所以是的,你可以做到这一点,这使得它更容易开发但是,编写一些连接和联合来提取相同的数据并不困难。