Facebook veritabanı tasarımı?
Her zaman Facebook arkadaş < tasarlanmış nasıl merak ettim;->kullanıcı ilişkisi.
Kullanıcı tablo şöyle bir şey düşündüm:
user_email PK
user_id PK
password
Kullanıcı verileri (cinsiyet, yaş vb kullanıcı ile bağlı olduğu varsayılabilir e-posta) ile tablo düşünüyorum.
Nasıl bu kullanıcı için tüm arkadaş bağlanır?
Böyle bir şeyi?
user_id
friend_id_1
friend_id_2
friend_id_3
friend_id_N
Muhtemelen değil. Kullanıcı sayısı bilinmiyor ve genişleyecektir.
CEVAP
Kullanıcı Kimliği ve arkadaşının Kimliği sonra tutan arkadaş bir tablo (FriendİD arayacağız. Her iki ifadesinde Kullanıcılar tabloya olurdu.
Biraz yararlı örnek:
Table Name: User
Columns:
UserID PK
EmailAddress
Password
Gender
DOB
Location
TableName: Friends
Columns:
UserID PK FK
FriendID PK FK
(This table features a composite primary key made up of the two foreign
keys, both pointing back to the user table. One ID will point to the
logged in user, the other ID will point to the individual friend
of that user)
Örnek Kullanım:
Table User
--------------
UserID EmailAddress Password Gender DOB Location
------------------------------------------------------
1 bob@bob.com bobbie M 1/1/2009 New York City
2 jon@jon.com jonathan M 2/2/2008 Los Angeles
3 joe@joe.com joseph M 1/2/2007 Pittsburgh
Table Friends
---------------
UserID FriendID
----------------
1 2
1 3
2 3
Bu hem Jon Bob ve Joe ile arkadaş olduğunu ve Jon da Joe ile arkadaş olduğunu gösterecektir. Bu seçenekte de varsayalım ki dostluk her zaman iki yolu var, bu yüzden değil bir satırda tablo gibi (2,1) (3,2) çünkü onlar zaten temsil edilen diğer yönü. Arkadaşlığın veya diğer ilişkilerin açıkça olmadığı için örnekler iki şekilde de, bu satırları iki yönlü ilişkiyi belirtmek için olması gerekir.
Nasıl Kullanıcı Tanımlı Alanlar için b...
İlk kez veritabanı tasarımı: overengin...
Yabancı anahtarlar veritabanı tasarımı...
Düzeltmeler için Veritabanı Tasarımı?...
Stok veritabanı tasarımı...