你可以从过程模型开始,画好数据流趁图。最好是分模块画
你的er图也可以分模块画。这样九不会那么复杂了。但是总的er图还是必须的。从分er图合并到总的er图是很管用的

解决方案 »

  1.   

    举个例子:TC(TNO,TNname,Address,CNO,CName)属性含义分别为工号,姓名,地址,课号,和课程名。
    它存在着上面列出的几个问题:
    数据冗余;
    修改麻烦;
    插入和删除异常;暂不任课的都是,其姓名和地址等信息无法插入。
    将这个关系模式拆为如下两个关系模式就比较好了。
    T(TNO,TName,Address)和C(TNO,CNO,CNname)
    这样就有效的解决了数据冗余和更新异常问题。
    详细的请看一本关于关系数据库设计理论的书好了。
      

  2.   

    外键如果有必要的话就必须拉出来
    我的系统有350个表外键非常多
    为了尽量不让外键交叉而给ER图的可读性造成麻烦
    我曾经几次对ER图的位置结构做大的调整
    当然每次都非常麻烦
    不过现在已经非常清晰了
    :))基础数据的外键不要全部拉出来
    否则每个表都会有十几个或者几十个非主键的外键
    那样整个ER图看起来肯定会非常乱的
    基础数据的外键一般是拉到业务流程中最早的那个表中为了不让太多的外键影响美观
    但还要保持数据库的一致性和完整性
    我所有的基础数据都是假删除
    这样就可以保证我在没有外键的保护时
    连表仍然不会出错
    :))