区分问题和答案

时间:2011-02-12 14:43:35

标签: sql mysql

从这个问题:Stackoverflows Tags system, How To

  

SO考虑问题和答案   是一回事 - 一个帖子。

问题有标题,而答案没有,SO如何处理?表格结构是什么?

您如何区分问题和答案以及标题字段中的答案?你能告诉我这在MySQL中会是什么样子吗?

1 个答案:

答案 0 :(得分:4)

一般来说,这是面向对象的继承问题及其映射到MySQL等数据库(或SO的情况下的MS SQL)所使用的关系模型。

如果您使用这些关键字进行搜索,可以找到更多相关资源。我将简要介绍一下该问题的不同方法:

  1. 您可以为所有帖子使用一个大表,然后让title列的值具有null值作为答案。性能良好,不需要太多的连接,太多未使用的数据。
  2. 您可以为共享属性提供具有冗余列的所有不同表。虽然性能良好,没有额外的连接,没有使用空间的null值,但有些冗余代码。
  3. 您可以为名为post的共享属性创建一个单独的表,并为每个子类型questionsanswers等创建一个表。没有null值,没有冗余代码,但必须使用SQL连接几乎任何东西,理论上最简洁,因为它被规范化(学术界似乎喜欢这样),但对于大量的数据根本没用。
  4. 我不知道为SO选择了哪种特定策略。也许mod的某个人会关心回答这个问题。