1

阅读了很多帖子,但仍然感到困惑..所以,

我想做这样的事情——一个用户有多个朋友。例如用户

user_id->U1 , frdlist->U2,U3,U4

因此,为此我有一个名为 user 的表,其 user_id 作为主键,一个名为 frdlist 的表具有 user_id 和 frd_ids,我很困惑如何制作 frdlist 表。在这个 user_id 和 frds_ids 列中,两者都是外键,引用父表(user)的同一列(user_id)。

这个怎么做。请帮忙。我正在使用 oracle 11g 。

4

1 回答 1

0

很简单。您的架构将是

user (
    user_id       PRIMARY KEY
  , first_name
  , middle_name
  , last_name
  ....
)

frduser (
    friendshipid  PRIMARY KEY
  , user_id       FOREIGN KEY REFERENCES user(user_id)
  , friend_id     FOREIGN KEY REFERENCES user(user_id)

(user_id, friend_id)对of的唯一约束frduser是不够的,因为它将寻找值的唯一组合,而不是唯一值。您将需要编写一个 DML 触发器frduser,以防止任何重复的用户朋友值的插入/更新/删除。

于 2013-02-23T01:11:55.637 回答