mysql - 如何使用表中不同数量的列来设计数据库

标签 mysql database postgresql database-design

假设您正在创建一个系统来存储不同国家/地区的特征。将有相同的基本列,如姓名、人口、首都等。但是让我们说,除此之外你还想存储一些国家特定信息,如最高的山峰、最近的海洋、最著名的食物等。这些列对于每个人来说都是不同的国家。

如何使用 MySQL 等关系数据库来完成此操作。 我知道使用像 MongoDB 这样的无模式 NoSQL 数据库会更容易,每个国家/地区都可以存储为单独的文档。但是可以使用关系数据库来完成这样的事情吗?

最佳答案

只有文本字段,您需要两个额外的表:

  • properties(包含属性的名称,例如“最高的山”)
  • country_properties(包含国家/地区属性对的值:例如:国家/地区“奥地利”的 ID、“最 Alpine ”的属性(property) ID、“山名”)

或者,如果只有几个属性,只需为未知值存储 NULL。

关于mysql - 如何使用表中不同数量的列来设计数据库,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/9434161/

相关文章:

php - MySql 查询 : Unknown column in 'where clause'

postgresql - 在 postgres (plpgsql) 中,如何创建一个在变量 table_name 上返回 select * 的函数?

sql - 将 Oracle SQL Select 转换为 PostgreSQL Select

mysql - AVG + 内连接

MySQL:组函数的使用无效

mysql - 创建一个表,但在复合键中包含其他实体?

sql - 将星期几存储在数据库中

php - 当我们从mysql数据库获取数据时出现错误如何正确

mysql - Postgres 相当于 MySQL 的 BENCHMARK() 函数

php - 为什么 ng-repeat 不动态更新?