我正在使用ER Assistant创建我的第一个实体关系图。
我创建了一个名为Users的实体,其中包含以下属性
UserID (identity 1,1) PK
UserName (varchar, 50)
我创建了第二个名为Logs的实体,其属性为
LogID (Identity 1,1) PK
LogEntry (varchar, 256)
UserID FK
我已将其断言分配如下,
该关系被定义为一个用户到多个日志,其中用户是必需的,日志是可选的
我得到的错误是:
“'Logs'实体类型中的'UserID'属性是多余的 '创造'关系。因为'UserID'是主键 “用户”不应该是“日志”的属性。
所以我的问题是,如果我没有将UserID作为外键放在Logs表中,我该如何正确地将这两者联系起来呢?我以为我对这是如何工作有一个很好的理解,但这对我来说绝对没有意义。我不确定这是否是有效性检查中的错误,或者我实际上是错误地做了这个。
答案 0 :(得分:0)
由于UserID不是Logs表的属性(假设用户和系统创建了一个Log,假设),良好的设计要求您将关系分成第3个表:
UserLogs
--------
UserID
LogID
这样,如果系统创建了日志,您可以创建另一个表:
SystemLogs
----------
SystemID
LogID
并为两个关系使用相同的实体Log