如果表中存在对称关系,如何优雅地表示呢?例如,有一个名为 的表Friend
,其中应包含两个用户的用户 ID。如果我们在这个表中使用UID1
and UID2
,当我们想知道 A_uid 和 B_uid 是否是朋友时,我们应该使用
SELECT * FROM Friend WHERE (UID1 = A_uid AND UID2 = B_uid) OR (UID1 = B_uid AND UID2 = A_uid);
因为UID1
和UID2
在代表友谊方面是相同的。在这个困境中最重要的UID1
是UID2
对称性。
我认为这很丑陋,想知道是否有更好的方法来处理它。
谢谢!