数据库设计思考

关于删除字段

1 删除数据是不可查出来的.

2 表加上删除字段,会导致唯一索引创建麻烦,所以我的方案表是不加删除字段,如果要保留删除数据,就放到删除数据表.

3 如果要删除数据,则应考虑数据是否被引用,如果被引用则不应被删除,如果实在要删除,则需要做快照表.

ps 如果数据涉及到跨系统数据同步,则要考虑加上删除字段,方便做数据同步.

pps 数据能不能删,以及要不要做快照,还是要以业务为准.

关于表更新关联关系

1 关联关系不可变更,比如teammember里的personid->原因是如果更新teammember里的personid变更,

会导致找不到teammember里产生业务数据的那个成员.

2 那么要变更关联关系,则需要先删除这条成员,再新增关联关系.

关于项目和服务的一对多还是一对一问题

1 最好还是一个项目,可以在多个服务中.这样从产品的角度,才好管理和更新项目.

那么就需要服务表,项目表,服务项目关联表3个表.

2 那么更新的时候就要注意,如果服务已被引用,则不能更新服务和所关联的项目.

关于使用枚举还是配置表

1 要看这些数据是否容易变动,容易变动就用配置表,反之则用枚举.

2 不用使用constants类把所有配置堆一起,不好维护.

关于基础数据来源其他部门的表

1 不要用他们的id作为我们的主键,因为数据来源id如果发生变更,我们库反而要清洗数据.

你可能感兴趣的:(数据库设计思考)