阅读很多帖子但仍然感到困惑..所以,
我想做这样的事情 - 单个用户有多个朋友。例如 用户
user_id-> U1,frdlist-> U2,U3,U4
因此,为此我有一个名为user的表,其中user_id为主键AND 一个名为frdlist的表有user_id和frd_ids,我很困惑如何制作frdlist表。 在此user_id和frds_ids列中,两个外键都引用父表(user)的相同列(user_id)。
如何做到这一点。请帮助。我正在使用oracle 11g。
答案 0 :(得分: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)
的{{1}}上的唯一约束是不够的,因为它会寻找值的唯一组合,而不是唯一值。您需要在frduser
上编写一个DML触发器,以防止任何插入/更新/删除重复的用户友好值。