数据库设计ER图相关的问题

-
在画ER图时是否每一个实体或关系必需在实际建表中实际存在?

比如说ER图有管理员和新闻这两个实体,联系是发布

那发布这个联系是不是在建表时有这张表?

以上
-

首先告诉你设计这东西没有对错,只有优劣,所以说没有正确答案,要看自己需求和经验。针对你的问题:1.在画ER图时是否每一个实体或关系必需在实际建表中实际存在?答:根据我的经验,实体一般都要建表,联系(关系)要分情况,一般一对多的联系,这个联系作为多的一方表中的一个字段。多对多的联系,要建一张表。(不要问我一对一的联系怎么办);2比如说ER图有管理员和新闻这两个实体,联系是发布,那发布这个联系是不是在建表时有这张表?答:根据一个管理员能发布多篇新闻,而一篇新闻只能被一个管理员发布(当然你也可以有你自己的规则,比如说我就规定了,一篇新闻要多个管理员联合才能发布,你都“就”了,我也没办法,如此正好体现“设计没有对错”这句话,因此便是多对多的关系)。管理员和新闻是一对多的关系。那么在多的一方,新闻表中存储管理员的主键。这样就可以通过一个具体的管理员查询到他发布的所有新闻,也可以通过一篇新闻,查询是哪个管理员发布的。那么问题来了,只在新闻表中存储管理员主键,“发布”这个联系(动词)如何体现。其实“发布”这个联系(动词)其实是一种操作,你把新闻表中各个字段都填写并存到数据库,就是在发生这种“发布”的联系。所以“发布”以写成方法(有些语言叫函数),我们一般统一称呼为新增(CRUD,即增删改查)。看起来“发布”这个联系貌似没在数据库体现,但是没有数据库中在新闻表中存储管理员主键,这种“发布”(新增)操作是没法完美实现的,就是说你不能根据用户查询到发布的所有新闻,根据新闻查询到是哪个用户发布的。所以也就没法体现“发布”这种关系了。所以有经验了,你会发现什么“发布”,“选课”,“借书”等等一切的联系只是字面不一样,大部分都可以通过存储另一张表的主键解决他们之间的联系,望你用心感悟。经验之谈,说不上正确,但确是实践的感悟,思考、打字不易,望采纳。
温馨提示:答案为网友推荐,仅供参考
第1个回答  2015-06-09
数据库设计ER图相关的问题保留制作原件的.
相似回答