sql - 使用表在 MySQL 中提供枚举值?

标签 sql mysql database enums

有没有办法将 MySQL 表的其中一个列内容映射到 MySQL 中另一个表的枚举?我认为这很简单,但我似乎找不到关于该主题的任何信息。

关于此事的任何建议或帮助都会很酷,如果不可能,有没有人知道不可能的内部原因?

向大家致以最诚挚的问候:)

加里

最佳答案

enum 类型作为一次性使用很方便,但它不能很好地扩展到多个表并且也不是标准 SQL。 这里最好的办法是使用普通表和关系:

  1. 定义一个新表来保存可能值的列表;我们称它为 Master1
  2. 在另外两个表中(我们称它们为 Table1 和 Table2),不要将字段设为枚举;只需将其设为与 Master1 具有外键关系的普通字段即可。

外键关系将完成限制为可能值列表的工作;并且因为外键和关系是绝对标准的 SQL,这种方法还有其他好处 - 例如报告工具可以识别外键并了解如何使用相关数据。

关于sql - 使用表在 MySQL 中提供枚举值?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/2106916/

相关文章:

Mysql查询得到带条件的结果

sql-server - SQL Server 中 View 的成本

.net - 在 SQL 中正确使用 IN

c# - System.Data.Common.DbCommand : Parameterized Query as Procedure Parameter?

php - 获取日期范围内最后 4 次计数的平均值

php - 如何通过比较PHP中的选项值将下拉值中的值插入数据库表?

SQL - 查找一对行是否不存在的最有效方法

php - 将数据导出为 .sql 格式。如何逃脱?

SQL 存储过程不返回任何数据

mysql - 如何选择mysql表中最近的N行,由于 "order clause"而出现错误