我正在构建一个包含数百万条记录的数据库,而且我有一个关于其中一个关系表的问题,这些关系表将用于存储两个可搜索的参考号。我是新手,所以我向前道歉,我道歉。
id digit1 digit2
varchar(9) varchar(9) varchar(9)
最好是a)在一个表中保留2个单独的可选列,或者b)为digit1和digit2保留两个单独的表?
如果digit1总是包含6到9个数字而且digit2总是由相同的3个字母和6个数字组成,我应该使用什么样的mysql字符类型?如何通过一组此类规则限制输入?
谢谢!
答案 0 :(得分:0)
实际上,如果您要存储数字,并且如果您不想同时通过digit1和digit2进行查询,最好将它们分开放在不同的表中。否则,最好将它们保存在同一个表中,否则您将会遇到痛苦的加入。它还取决于你的矩阵稀疏程度(我的意思是,如果第2列中的项目太多而第3列中只有少数项目,那么最好还是将它们分开)
现在,如果你想存储数字,那么在这里会产生更大差异的是使用数字字段来存储值(而不是varchar),这将更小更快地搜索和索引(等等,检索)