最近项目中遇到数据库设计上的问题,在此向高手请教
喵。猫咪一直是敏捷开发拥护者。自己做项目总是先出设计实体然后映射成数据库表(猫咪是ORM框架拥护者)。最近进入一个项目,ER图已经画出来了。其中很多数据表上都有保留字段。我想问一下,在数据库设计中这么做到底是好还是不好?因为我觉得如果这些备用字段日后要使用的话,至少要改名字(总不能实际数据字段叫备用字段吧),而且外键关联也要加上去。我觉得这么改,还不如到时候直接增加字段。都是要改表结构,我觉得留备用字段没什么用。而且如果留的太多,是否太浪费空间了?
上网搜了一下,有人说留下备用字段,可以避免编译全部程序?猫咪在这里不理解。如果不是程序逻辑需要修改,干嘛修改表结构?
还有,猫咪看到有人说数据库设计中出现“闭合环”不好。猫咪想问一下,什么是“闭合环”?是不是猫咪理解的数据表的一个字段的外键指向数据表自己的主键?反正猫咪知道这样的话,写某些SQL语句超级麻烦。不知自己理解得对不对。因为猫咪都是先设计实体,所以没遇见这种情况。项目已经决定使用Hibernate。请问这么一来是不是映射就麻烦了。
猫咪在数据库设计方面相对薄弱一些,希望在线的朋友们帮猫咪分析分析。