数据库设计咨询
目前的数据设计是这样的, 有个字段值标注该记录的类型,然后其他字段为该记录的值。
比如 类型学生,有年龄,性别
那么此时数据库的结构为
type
age
sex
但是随着系统的扩展这个表变的不适应了,比如此时引入了老师,而老师有级别,那么此时必须修改表为
type
age
sex
level
随便不段新类型的引入,有些类型没有age或者sex,又扩展新的属性。我想问有什么好的设计来适应这种扩展。
------解决方案--------------------从实体角度来说“教师”和学生“学生”是两个不同的实体,这两者之间除了年龄性别之外,几乎没有共同属性。你放在一个表违背了三范式。虽说设计的时候不一定满足三范式,但第一范式必须达到,你这样做联第一范式都没达到。从跟上解决问题:学生,教师,还有你说的其他都不要放在一个表中,
强烈建议分表!!!!
------解决方案--------------------
你这就好比需求都没调研清楚就来做项目,有什么意义?谁都给你解答不了,个人信息表也不要太大。什么车牌号之类的可以另外用表放。比如说订单表,记录订单的生成日期,客户编号,订单金额,以及数量等等,但是订单可以对应的有订单明细表,这里记录每个订单有哪些具体的货物,以及这些货物的属性
------解决方案--------------------如果很多商品,它们的属性差别很大
倒是有专门的做法:
属性表:属性id,商品类型id,属性名称
属性值表:商品id,属性id,属性值
------解决方案--------------------可以把人的信息单独设计一张表,包括共性信息如姓名、性别、婚否等基本信息,其他教师、学生、清洁工、义工等表与该人表关联