在SQL中,我如何处理a-> b和b-> a?形式的关系?

时间:2014-05-14 05:29:30

标签: sql

我正在为我的数据库课程开发一个项目,该应用程序具有添加朋友的功能。我接近它的方式是有一个表格,定义如下:

CREATE TABLE Friend(
    friend_from VARCHAR(10),
    friend_to VARCHAR(10),
    PRIMARY KEY(friend_from, friend_to),
    FOREIGN KEY(friend_from) REFERENCES Users(username)
        ON UPDATE CASCADE
        ON DELETE CASCADE,
    FOREIGN KEY(friend_to) REFERENCES Users(username)
        ON UPDATE CASCADE
        ON DELETE CASCADE
);

让我们说用户A是用户B的朋友。我应该在表中同时使用它们,即

+-------------+-----------+
| friend_from | friend_to |
+-------------+-----------+
| A           | B         |
+-------------+-----------+
| B           | A         |
+-------------+-----------+

提前感谢您的帮助!

1 个答案:

答案 0 :(得分:3)

如果关系是双向的,那么关系的方向没有意义 - 你可以为数据库表中的每个关系存储一行。