因此,我与一位同事在使用枚举与查找表方面存在分歧。
这篇 2011 年的非常古老的文章和 MyQL5.5仍然被那些不喜欢枚举的人一次又一次地引用。
但是我们在不是那么大的数据库上使用 MySQL8.0,比如 50 到 60 个表,有 30 个枚举列。
一些表有几百万行,大多数都低于 500K 行。
几乎所有枚举的值都少于 10 个,并且只有极少数在其生命中发生了变化(一次),总是在可能值的末尾添加一个新值。
而且我们从来没有“遭受”过文章提到的任何缺点,比如将元数据存储在旁边,从其他表中引用相同的值等等......
尽管文章在第 2 点说了什么,但今天,在列表末尾添加一个值并不会更新整个表,但删除一个值总是会更新(或至少读取)所有行。
我确实知道有两个学派,我了解两者的优点和缺点。
但是,今天在 MySQL8 上,是否存在任何实际/事实/技术原因,所以**从现有列的枚举切换并证明应用程序和数据库中的所有工作都需要这样做?
感谢您的阅读和您的回答。