1

我已经创建了一个包含多个表的数据库,并试图回溯并创建它的 ER 图,但我正在努力解决它。数据库系统将用于匹配具有相似偏好的人。

  • 每个用户都有管理信息(存储在 user_core)、关于他们自己的信息(存储在 user_profile 的记录中)和关于他们偏好的信息(存储在 EAV user_prefs 表中)。
  • “首选项”表存储首选项的 pref_id 及其名称
  • 'shortlist' 表存储用户的 id 和他们已入围的用户的另一个 id。每个用户将在其中拥有与入围的人一样多的条目。
  • 'groups' 表存储关于一组人的信息。每个组都有一个 id,成员在他们的 user_core 中指定这个,以及组中的最大人数

大部分麻烦来自于识别实体是什么——它们大部分只是表名吗?

这些是我的桌子。开头的名称是表名,CSV 是字段名:

user_core = {id, birthday, sign_up_date, access token, group ID}

user_profile = {id, gender, course, university, religion}

user_prefs = {id, pref_id, value, weight}

preferences = {pref_id, name}

shortlist = {id, targ_id}

groups = {group_id, max_no}

那么,如果我要以此制作 ER 图,我会怎么做呢?

如果我要拆分它,我会说我的应用程序中的实体是:用户、偏好、候选名单、组。但是,当我尝试考虑这些关系时,它开始变得混乱——很可能是因为我在这里逆向工作!任何帮助或指点将不胜感激,谢谢!

4

1 回答 1

1

如果你真的想要一个 ER 图,那么每个实体都会得到一个框,每个关系会在两个框之间获得一条线,或者在框之间获得一条带有线的菱形,具体取决于。

看起来 user-profile 只是用户的更多属性,但 user-preferences 是许多用户和许多偏好之间的关系。

相反,如果您想制作一个数据库示意图,有些人称之为 ER 图,那么每个表都会有一个框。

数据库原理图倾向于关系实现,而 ER 模型与实现无关。此外,ER 模型反映分析,而数据库原理图包括设计。

于 2012-08-24T23:25:05.613 回答