假设我有两张桌子:
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完成吗?
答案 0 :(得分:0)
你可以忘记SQL的enum
。相反,只需使用VARCHAR(50)
等,并在PHP代码中使用const
来定义enum
值。
我很少使用SQL enum
,在大多数情况下,它的好处少于其复杂性。