Mysql:多个表的一个枚举

时间:2018-03-09 08:39:51

标签: php mysql

假设我有两张桌子:

mice
id (int) petname (varchar) gender (enum (male, female))
1        spot            male
2        rice           female

men
id (int) name (varchar) gender (enum (male, female))
1        bob            male
2        jane           female
3        steve          male

性别枚举存在两次。每桌一次。因此,如果想要满足sjw观众的需求,我需要使用新值扩展性别枚举,这意味着我必须手动编辑几个表中的枚举。这不是最理想的。

有没有办法定义枚举值一次并在几个表中使用它们?

或者也许创建一个名为genders的新表并将性别放在那里,然后在插入和更新鼠标和男性时,它只允许性别列包含性别表中的值。然而,此检查需要自动进行(与enum列类型一样),因此我不必先执行其他查询,以检查性别表中是否存在已使用的性别,在每次更新或插入我想要运行的查询之前,将值插入小鼠或男性的性别列中。

可以用mysql完成吗?

1 个答案:

答案 0 :(得分:0)

你可以忘记SQL的enum。相反,只需使用VARCHAR(50)等,并在PHP代码中使用const来定义enum值。

我很少使用SQL enum,在大多数情况下,它的好处少于其复杂性。