在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的办理方案越发强盛和开明,但它如故不完备,由于它也是单维的,而性别是多维的. 在对任何主观种别(性别,种族,阶层认同,宗教,政治流派,就业状况,民族认同,性取向,性举动等)对人举办分类时,请思量他们可以通过多种方法表白本身.并不老是有“搜查单一盒子”的办理方案. 这逾越了意识形态.实行将多维实体分类为单个维度是禁绝确的,而且禁绝确性具有本钱. (编辑:湖南网) 【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容! |