关联者已创建一个模式,该模式ENUM()在查找表上使用主键列.该表将产品代码"FB"转换为其名称"Foo Bar".
然后,该主键在其他地方用作外键.而目前,FK也是一个ENUM().
我认为这不是一个好主意.这意味着要连接这两个表,我们最终会进行四次查找.这两个表加上两个ENUM().我对么?
我宁愿让FK CHAR(2)减少查找次数.我也更喜欢PK也CHAR(2)完全减少它.
ENUM()s 的好处是要对值进行约束.我希望有类似的东西:CHAR(2) ALLOW('FB', 'AB', 'CD')我们可以用于PK和FK列.
什么是:
这个概念也在别处使用.如果ENUM()价值更长怎么办?ENUM('Ding, dong, dell', 'Baa baa black sheep').ENUM()从空间的角度来看,这是有用的.如果有几百万行使用这些值,我应该只关心这个吗?在这种情况下,ENUM()节省存储空间.
但是,当您仅困于10行或更少的行时,这将不是问题
CREATE TABLE `grade`(
`grade` ENUM('A','B','C','D','E','F') PRIMARY KEY,
`description` VARCHAR(50) NOT NULL
)
Run Code Online (Sandbox Code Playgroud)
这张表很难获得DML