Php Mysql:多个表的一个枚举
假设我有两张桌子:Php Mysql:多个表的一个枚举,php,mysql,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
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
性别枚举存在两次。每张桌子一次。因此,如果我想用新值扩展性别枚举,这意味着我必须手动编辑几个表中的枚举。这是次优的
有没有办法定义一次枚举值并在多个表中使用它们
或者创建一个名为genders的新表并将genders放在那里,然后在插入和更新到mice和men中时,只允许gender列包含gender表中的值。但是,这种检查需要自动进行(与enum列类型类似),因此在我要运行的每个更新或插入查询之前,我不必首先执行额外的查询来检查性别表中是否存在使用过的性别,这会在鼠标或男人中的性别列中插入值
mysql可以做到这一点吗?您可以忘记SQL的
enum
。相反,只需在PHP代码中使用VARCHAR(50)
等,并使用const
来定义enum
值
我很少使用SQL的enum
,在大多数情况下,它的好处小于它的复杂性。外键?