SORU
17 HAZİRAN 2009, ÇARŞAMBA


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
17 HAZİRAN 2009, ÇARŞAMBA


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.

Bunu Paylaş:
  • Google+
  • E-Posta
Etiketler:

YORUMLAR

SPONSOR VİDEO

Rastgele Yazarlar

  • BroadCity

    BroadCity

    10 ŞUBAT 2010
  • echifitness

    echifitness

    9 Kasım 2008
  • mliskIT

    mliskIT

    29 Mart 2012