在MySQL数据库中存储性别的最佳技术

在MySQL数据库中存储性别的最佳技术,第1张

概述哪种方法可以在MY SQL数据库中存储性别?我对这个问题感到有点困惑,因为不同的人以不同的方式表达.有人建议将它存储在INT中更好,但是其他人建议使用TINYINT和Enum,但是其他人建议将它存储在CHAR(1)M for Male和F For Female中.此外,听到http://en.wikipedia.org/wiki/ISO_5218时更加令人怀

哪种方法可以在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方法,因为你最终得到这样的查询:

SELECT * FROM mytable WHERE gender = 1;

是男性还是女性?如果是男性,女性是0吗?还是2?或者16岁?你必须记住要编写(和维护)应用程序的一堆东西;无需添加到那堆.

Ed Gibbs的附录2017-12-01:当我在一个不相关的谷歌搜索中偶然发现时重新审视我的答案……

ENUM方法在具有静态,一维值域(例如,Y / N,To / Cc / Bcc)的用例中具有优点,但它对于性别无效.我的答案是在“你如何将专栏限制为M或F”的书呆子语境中,而不是在更广泛的性别定义背景下.

D Mac的解决方案更加强大和开明,但它仍然不完整,因为它也是单维的,而性别是多维的.

在对任何主观类别(性别,种族,阶级认同,宗教,政治派别,就业状况,民族认同,性取向,性行为等)对人进行分类时,请考虑他们可以通过多种方式表明自己.并不总是有“检查单一盒子”的解决方案.

这超越了意识形态.尝试将多维实体分类为单个维度是不准确的,并且不准确性具有成本.

总结

以上是内存溢出为你收集整理的在MySQL数据库中存储性别的最佳技术全部内容,希望文章能够帮你解决在MySQL数据库中存储性别的最佳技术所遇到的程序开发问题。

如果觉得内存溢出网站内容还不错,欢迎将内存溢出网站推荐给程序员好友。

欢迎分享,转载请注明来源:内存溢出

原文地址: https://outofmemory.cn/sjk/1166322.html

(0)
打赏 微信扫一扫 微信扫一扫 支付宝扫一扫 支付宝扫一扫
上一篇 2022-06-01
下一篇 2022-06-01

发表评论

登录后才能评论

评论列表(0条)

保存