网站有一个表A,专门记录客户的历史交易记录,这些历史记录一共分为几个类型,每个类型需要记录各自必要的属性,如下:表A:
ID 类型 总属性1 总属性2 总属性3 属性A1 属性A2 属性A3 属性B1 属性B2 属性B3 属性C1 属性C2 属性C3...实际情况就是:对于所有类型的记录,都会至少用到总属性
对于A类型的记录,还至少需要用到A1-A3的属性
对于B类型的记录,还至少需要用到B1-B3的属性
对于C类型的记录,还至少需要用到C1-C3的属性同时,A类型的记录还可能需要用到其他类型记录的某些属性表A一共大概有20个字段那么如何设计这个表比较好呢?我现在就是只有一个表A,在插入记录的时候根据类型的判断,写入相应的属性,然后其他不需要的属性就设置为NULL,读取记录的时候也是根据类型的不同,然后取要用的属性我当初这样设计主要考虑到总字段20个左右不算多,都装到同一个表,取记录的时候也不需要多表连接,然后对所有记录的显示排序之类也方便,但是我不知道这样设计是否科学,是否有必要根据不同类型设计出不同的表来,类似于将一般化进行特殊化的处理那样,这样做考虑到以后如果有功能上的扩展是不是会更方便点?
ID 类型 总属性1 总属性2 总属性3 属性A1 属性A2 属性A3 属性B1 属性B2 属性B3 属性C1 属性C2 属性C3...实际情况就是:对于所有类型的记录,都会至少用到总属性
对于A类型的记录,还至少需要用到A1-A3的属性
对于B类型的记录,还至少需要用到B1-B3的属性
对于C类型的记录,还至少需要用到C1-C3的属性同时,A类型的记录还可能需要用到其他类型记录的某些属性表A一共大概有20个字段那么如何设计这个表比较好呢?我现在就是只有一个表A,在插入记录的时候根据类型的判断,写入相应的属性,然后其他不需要的属性就设置为NULL,读取记录的时候也是根据类型的不同,然后取要用的属性我当初这样设计主要考虑到总字段20个左右不算多,都装到同一个表,取记录的时候也不需要多表连接,然后对所有记录的显示排序之类也方便,但是我不知道这样设计是否科学,是否有必要根据不同类型设计出不同的表来,类似于将一般化进行特殊化的处理那样,这样做考虑到以后如果有功能上的扩展是不是会更方便点?
解决方案 »
免费领取超大流量手机卡,每月29元包185G流量+100分钟通话, 中国电信官方发货