EER - 示例中的识别和非识别关系

时间:2011-05-04 14:17:55

标签: database database-design logic relational-database

如果我有三个表格,一个用于users,一个用于activationLink,一个用于location

- usersactivationLink之间的关系是一种识别关系,因为只有当用户在系统中注册时,特定activationLink才会存在。

- 但userslocation之间的关系不可识别,因为location不存在users

- 如果存在名为users且其他名为workerstudent的表格,workerstudent可以不存在users }?是一种非认同关系?

我的逻辑在三点是否正确?

感谢。

2 个答案:

答案 0 :(得分:2)

(1)User和ActivationLink之间的关系并不完全清楚。

  • ActivationLink必须拥有一个用户(即与一个且仅与一个用户相关)
  • 但是,用户可以使用多少个ActivationLink?零,一,零或更多,一个或多个?

这可能是一种认同关系,但在结识之前我想知道更多。

(2)正确。用户和位置(如您在此处所述)是单独的实体。

(3)仅根据所用词语的典型含义,可以假设“用户可以是学生或工作者”,因此他们听起来就像子类型一样......但是这一点无法通过手头的信息证明或反驳。后续问题是:

  • 可以是非用户的学生或工人吗?
  • 用户必须是学生还是工作人员?
  • 用户既可以是学生也可以是工人?
  • 或者,如果不是,那么用户是什么?是否有第三个(或第四个或第五个或......)表格,表明用户的类型或类型是什么?

答案 1 :(得分:0)

“ - 用户和activationLink之间的关系是一种识别关系,因为只有当用户在系统中注册时,特定的activationLink才会存在。”

Hmmmmmmmmmmmm。那么定义就是x和Y之间的关系是“识别”Y是否不存在“没有X”?

这并不是我上学时的记忆。我想我已经被告知关系是“识别”关系本身是否(必然?)(关键字/标识符)(“子”实体)的一部分。也就是说,父实体的逻辑密钥/标识符的属性也是子实体的逻辑密钥/标识符的一部分。你的例子就是这种情况吗?激活链接本身不是唯一的吗?几个不同的用户可以“共享”相同的激活链接吗?听起来很奇怪。

请注意,这个定义使得这个概念在表面上(如果不是完全不适用的话)对于至少有一方没有“很多”的关系(例如你的用户 - 工人关系,等等)。