sql - 区分问题和答案

标签 sql mysql

来自这个问题:Stackoverflows Tags system, How To

SO considers questions and answers to be the same thing - a Post.

问题有标题,而回复没有,SO 是如何处理的?表结构是什么?

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

最佳答案

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

如果您使用这些关键字进行搜索,您可以找到更多相关资源。我只会给你一个简短的列表,列出解决这个问题的不同方法:

  1. 您可以为所有帖子使用一个大表,然后让 title 列的值具有 null 值作为答案。有利于性能,不需要有太多连接,太多未使用的数据。
  2. 您可以让所有不同的表都包含共享属性的冗余列。有利于性能,没有额外的连接,没有 null 值占用空间,不过有一些冗余代码。
  3. 您可以为名为 say post 的共享属性创建一个单独的表,并为每个子类型 questionsanswers 等创建一个表。否 null 值,没有冗余代码,但几乎所有内容都必须使用 SQL 连接,理论上最干净,因为它是规范化的(学术界似乎喜欢这样),但对于大量数据根本没用。

我不知道为 SO 选择了哪个特定策略。也许 mods 中的某个人会愿意回答这个问题。

关于sql - 区分问题和答案,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/4978652/

相关文章:

数学三角测量中的 PHP vs Mysql 速度

javascript - 制作网络应用的离线版本

用于 MYSQL 中 NOT IN 查询的 PHP PDO

MySQL 使用 RIGHT JOIN 获取项目计数

php - SQL表连接?

java作为前端,php作为后端

php - 将 mysql 值从 '0' 更新为 '1' ?

php - 插入连接表 Mysql

python - web2py 类型错误 : id() takes exactly one argument (0 given)

mysql - 在 Ubuntu 20.04 上从 MySQL 迁移到 MariaDB