ER图设计
实体、关系、属性
实体是业务中的实体,一个实体建立一个表。关系是业务中实体之间的关系,一个关系建立一个表,表中最少要注明产生关系的两个实体。实体可以有属性,关系也可以有属性。
属性如果很复杂,可以壮大成一个实体。
1比n的关系的合并:实体不合并,关系合并到n的那个表里。
n:m的关系的合并:不能合并。
1:1的关系的合并:两个实体和一个关系都合并到一个表里。
表设计越多越好还是越少越好?
分解越多,各种表间的引用越多,容易乱。表多,统计计算麻烦。
表太少,字段多,难以描述复杂的关系。
基础的数据,都设计成主表,只能被引用,不能在其他地方输入,确保数据一致性。
主键,MisShop中默认用id作为主键,但如果设置了复合主键,则系统认为复合主键为表的主键。
为了方便统计查询,有时候特意设置一些冗余。如交易详情表有单价、数量、金额字段,其中金额等于单价*数量,金额是冗余的。但为了统计方便,或者保证数据正确性,一般把金额也存入表中。