目前有问题,不知如何设计数据表更为稳妥。情况如下:
有12种物品(暂时确定有12种)a1、a2、a3...a12。需要一张表记录该12种物品是否被选择。有两种设计
一:
product varchar(30) 用该字段存储物品的代号。如该字段数据a1a3a5代表选取1、3、5物品二:
建立12个字段用tinyint字段 0/1 确定是否被选择。这两种见表有什么优劣么?请高人指点
有12种物品(暂时确定有12种)a1、a2、a3...a12。需要一张表记录该12种物品是否被选择。有两种设计
一:
product varchar(30) 用该字段存储物品的代号。如该字段数据a1a3a5代表选取1、3、5物品二:
建立12个字段用tinyint字段 0/1 确定是否被选择。这两种见表有什么优劣么?请高人指点
物品ID 是否被选择
a1 1
a3 1
a5 1
物品对照表
物品ID 名称
a1 ...
物品表:
客户id 物品ID 是否被选择
1 a1 1
1 a3 1
1 a5 1
2 a2 1
2 a4 1
2 a6 1
物品对照表
物品ID 名称
a1 ...
张三 , A1
张三 , A3
张三 , A5
李四 , A1
李四, A2你的两种方法都不符合传统的数据库设计要求。你的更新,统计等一系统操作会很复杂。如果有新的产品,你需要修改你的表结构来添加字段。并且一旦当你的产品多到上千时,会受到表最大字段上限
mysql的简介中说过,它可以支持亿级别的数据量。当然那个时候需要很高的硬件支持了,不过百万级别肯定是没问题的。不过需要设计的效率很高才行。