PHP MySQL Birçok-çok ilişkileri ele için en iyi yol

1 Cevap php

PHP ve MySQL çok-çok ilişkileri bir veritabanı işlemek için en iyi yol arıyorum.

Şu anda 2 tablolar var:

Users (id, user_name, first_name, last_name)
Connections (id_1, id_2)

User tabloda id add ve user_name benzersiz artırılır otomobil olduğunu, ancak değiştirilebilir. Ne yazık ki, user_name üzerinde kontrolü ve değiştirilmesi kabiliyetini yok, ama ben bunun hesabını vermeli.

Connections tablo açıkçası, user1 ve kullanıcı2'ın id.

Bağlantı tablo bu olası ilişkileri hesaba gerekiyor:

user1 --> user2 (user 1 friends with user 2 but not user2 friends with user1) 
user2 --> user1 (user 2 friends with user 1 but not user1 friends with user2) 
user1 <--> user2 (user 1 and user 2 mutually friends) 
user1 <-!-> user2 (user 1 and user 2 not friends) 

O kısmı ben yaşıyorum sorun ne zaman ve eğer gruplar değiştirmek benzersiz bu ilişkileri tutuyor, sorun değildir.

Olası çözüm 1: 1 ilişkileri kullanıcının tüm silmek ve güncellenen listesi ile bunları readd. Bu benim ihtiyaçları için çok yavaş olabileceğini düşünüyorum.

Çözüm 2? Başkasının bu sorunla karşılaşırsınız? Nasıl en iyi ben hallederim gerekir?

güncelleme: ilişkileri ayırt:

ben böyle ilişkileri ele:

user1, user2
user1, user3
user2, user1

in that example the following is true:
user1 follows user2 and user3
user2 only follows user1 but doesn't follow user3
user3 doesn't follow either user1 or user2

1 Cevap

Eğer teklik ile ilgili sorunlar yaşıyorsanız eğer iki sütunu (ID_1, ID_2) kullanılarak, Bağlantıları üzerinde bir bileşik birincil anahtar kullanabilirsiniz.