mysql-在表中存储非数字注册号的数据类型
作者:互联网
我对数据库非常陌生,并创建了一个表来存储一些学生的详细信息.
他们的学生注册号码是这样的:12 / AS / CI / 99
那么,将这个值存储在表中的最佳数据类型是什么?
解决方法:
首先要了解的是12 / AS / CI / 99不是一个基准(即使用户将其视为一个RegistrationNo),因此不应将其放在单个列中.
第一范式要求数据是原子的.
确定这四个项目分别是什么,并实现四列.可能是注册年份,家乡状态,鱼类,出生年份.
这样可以在每个组件列上提供全部功能(查找,搜索,聚合等).
是的,这意味着密钥将为四列.复合键在关系数据库中是正常的.
是的,这意味着无论在何处显示给用户,您都必须将四列之间用“ /”连接起来,作为标记为RegistrationNo的单个字段(注意列和字段之间的区别).那也是正常的.
如果不这样做,则将其存储为字母数字列,则将没有数据库,也不会有人们期望从数据库获得的任何便利.例如.如果您搜索在其RegistrationNo中具有AS的学生,则查询将进行tablescan(Peanut的建议不正确),而如果组件是分开的列,则查询速度会非常快,因为索引了Key(在任意数量的组件列中) .学生密钥应在其出现的任何表中建立索引.
标签:relational-database,sqldatatypes,mysql,database 来源: https://codeday.me/bug/20191028/1952589.html