在MySQL数据库中存储性别的最佳技术
哪种方法可以在MY SQL数据库中存储性别?我对这个问题感到有点困惑,因为不同的人以不同的方式表达.有人建议将它存储在INT中更好,但是其他人建议使用TINYINT和Enum,但是其他人建议将它存储在CHAR(1)M for Male和F For Female中. 此外,听到http://en.wikipedia.org/wiki/ISO_5218时更加令人怀疑 但是在我看来将它存储在CHAR中是一个好主意,因为它提供了比ENUM更强大的功能?我也关注可伸缩性,想知道存储数百万条记录的更好解决方案. 非常感谢专家提出的宝贵建议. 最佳答案 就个人而言(因为这是一个有点主观的问题)我会选择ENUM. MySQL不支持CHECK约束,因此ENUM是确保值为M或F(或m或f)的唯一方法.对我来说,这是最重要的一点.此外,ENUM应该只需要一个字节的存储空间(根据docs),因此它与CHAR(1)或TINYINT一样有效存储. 我根本不了解TINYINT方法,因为你最终得到这样的查询:
是男性还是女性?如果是男性,女性是0吗?还是2?或者16岁?你必须记住要编写(和维护)应用程序的一堆东西;无需添加到那堆. Ed Gibbs的附录2017-12-01:当我在一个不相关的谷歌搜索中偶然发现时重新审视我的答案…… ENUM方法在具有静态,一维值域(例如,Y / N,To / Cc / Bcc)的用例中具有优点,但它对于性别无效.我的答案是在“你如何将专栏限制为M或F”的书呆子语境中,而不是在更广泛的性别定义背景下. D Mac的解决方案更加强大和开明,但它仍然不完整,因为它也是单维的,而性别是多维的. 在对任何主观类别(性别,种族,阶级认同,宗教,政治派别,就业状况,民族认同,性取向,性行为等)对人进行分类时,请考虑他们可以通过多种方式表明自己.并不总是有“检查单一盒子”的解决方案. 这超越了意识形态.尝试将多维实体分类为单个维度是不准确的,并且不准确性具有成本. (编辑:晋中站长网) 【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容! |