关于关系型数据库的松耦合

白起 发布于 2012/06/01 10:07
阅读 736
收藏 0

之前一直没想过这个问题,后来数据库经常要变更,问题就越来越严重了。

例如有一个

User表,tab_user,3个字段,id,name,pwd.

文章表,tab_article,3个字段,id,title,content,uid.

文章类别,tab_category,2个字段,id,categoryName

tab_article的uid关联到tab_user的id.

关于上面的tab_article的uid这个字段要不要放在tab_article里面?

比方开始设计的人考虑问题不全,在建表的时候忘掉了tab_article的类别外键.这个时候系统已经完成了,数据bean与数据库表对应,如果这个时候要想修改的话,程序中许多的代码都要修改,从数据层到展示层.

而实际上,任何一个系统的设计都不可能十全十美,或者说,任何一个系统或多或少在以后都可能会进行修改,随着以后深入的发展,系统的功能的添加.新的实体对象的加入,新的关系关联,要是像上面那样修改表的话我觉的不太现实.

我在想,是不是像user,article这样的承载数据的表里面不应该涉及到关联字段,而只是他们自己的内部属性字段.所有的关联字段放到另一张表里面.

比方上面的,我新建一个表tab_connection,有字段id,uid,articleId,当需要更改的时候,比方要增加类别的关联,可以在tab_connection里面增加字段categoryId,由于tab_connection在程序中不涉及到承载数据的bean,那么程序中就不需要修改,数据库的修改也仅限于修改关系表,而不是数据表.不知道各位数据库怎么设计的,有啥好的方案.

加载中
返回顶部
顶部