加入收藏 | 设为首页 | 会员中心 | 我要投稿 PHP编程网 - 黄冈站长网 (http://www.0713zz.com/)- 数据应用、建站、人体识别、智能机器人、语音技术!
当前位置: 首页 > 站长学院 > MySql教程 > 正文

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

发布时间:2021-03-07 08:04:51 所属栏目:MySql教程 来源:网络整理
导读:哪种方法可以在MY SQL数据库中存储性别?我对这个问题感到有点困惑,因为不同的人以不同的方式表达.有人建议将它存储在INT中更好,但是其他人建议使用TINYINT和Enum,但是其他人建议将它存储在CHAR(1)M for Male和F For Female中. 此外,听到http://en.wikiped

哪种方法可以在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的解决方案更加强大和开明,但它仍然不完整,因为它也是单维的,而性别是多维的.

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

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

(编辑:PHP编程网 - 黄冈站长网)

【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容!

    热点阅读