sql - 在 SQL 表中存储分类引用的最佳方法是什么?

标签 sql mysql database-design enums statistics

我想在 MySQL 数据库表中存储大量分类数据。比方说,我想获取有关“小部件”的信息,并希望以某种方式对属性进行分类,即形状类别。

例如,小部件可以分类为:圆形、方形、三角形、球形等。 这些类别是否应该存储在一个表中以便从应用程序中最好地引用它们?我想,另一种可能性是向小部件添加一列,该小部件包含一个形状列,该形状列包含一个小整数。这样我的应用程序就可以通过它搜索形状,然后使用一个协调的枚举类型来映射形状的 int 含义。

哪个最好?还是有其他我尚未想到的解决方案?

最佳答案

为每个属性分组定义一个类别表。即:

WIDGET_SHAPE_TYPE_CODES

  • WIDGET_SHAPE_TYPE_CODE(主键)
  • 描述

然后在WIDGETS 表中使用外键引用:

小部件

  • WIDGET_ID(主键)
  • ...
  • WIDGET_SHAPE_TYPE_CODE(外键)

这有利于移植到其他数据库,更明显的关系意味着更简单的维护。

关于sql - 在 SQL 表中存储分类引用的最佳方法是什么?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/2981989/

相关文章:

mysql 按多个分组

sql - 如何优化包含子查询的 MySQL 查询?

mysql - 把一张 table 拆成几张小 table

mysql - 使用值列表中的子查询优化 mysql 查询

mysql - 这个查询有什么问题?

java - 将参数从 Java 传递给 Sql

php - 在 PHP 中处理大型 while 循环的最佳方法

database - 无法决定设置为主 ID 的方式和值

sql - DB2 自动初始化和更新 TIMESTAMP

mysql - 检查mysql表中的年龄