Kullanıcı tabanlı bir web sitesi için MySQL Tablo Yapısı

3 Cevap php

Ben sadece Facebook veya LinkedIn gibi kullanıcı profilleri, hesapları, hesap ayarları, gelen kutularını, vb vardır ve ben bunun için mySQL tabloları kurmak için nasıl merak ediyorum bir web sitesi geliştiriyorum.

Ben her fonksiyonun (profil, gelen kutusu, vb) için her kullanıcı için bir tablo oluşturmak gerekir?

3 Cevap

Eğer gerçekten (diğer posterler tarafından belirtildiği gibi) ilişkileri açısından bir veritabanına koymak her şeyi düşünmek gerekir. Örneğin, bir kullanıcı posta gibi şeylerle bir one to many ilişkiye sahip oluyor verdi, onların kullanıcı profili ile bir one to one ilişki olacaktır, ve onlar (bir {[olacak birçok kullanıcı bir şehirde yaşıyoruz 'yerleri' gibi bir şey 2)]} ilişkisi.

Eğer veritabanı tasarlarken her zaman olduğu gibi size gerek yok olduğunda birden çok tablo verileri çoğaltmak asla bir girişim kurmak ve yapmak zorunda olduğu ilişki türü kendinize sorun.

Her satır (bir tablo olan her kullanıcı için farklı olarak) bir kullanıcı için eşit ve her satır benzersiz bir otomatik artış id olduğundan emin olun Kullanıcıların tablo gibi bir şey kurmak. Bu kullanıcı kimliği (ki MySQL ile oluşturulur) birlikte verilerinizi bağlamak için diğer tablolardaki kullanabileceğiniz referans olacak.

Yani posta tabloda e-posta verilerini içeren 15 satır olabilir, ama bu satırların her kullanıcıları tablodan o kullanıcının benzersiz kimliği içerecek user_id gibi bir şey adında bir alan ihtiva edecek zaman kurulum.

SOL gibi şeyler JOIN aşina başlar - bu tek bir sorgu çalıştırmak ve bir kerede, örneğin, kullanıcının verilerini VE onun e-posta tüm alacak nasıl olduğunu.

Her kullanıcı için bir tablo oluşturmak olmaz.

Her kullanıcı için bir kayıt ve benzersiz kimliği oluşturmak ve sonra diğer tablolardaki yabancı anahtar olarak kimliğini kullanarak diğer tablolara relate o kullanıcı olacaktır.

Tanımanın gerekliliği varsa Kısacası evet, her işlev, bir tablo olmalıdır. Düzenlemek On: Ve her kullanıcı için bir tablo. Her ilgili tabloda bir kayıt

Bu fırsatlar kavramdır normalleştirme. Profil ve gelen kutusu düşünün. Bir kullanıcının yalnızca bir profili vardır, ancak kutunuza çok sayıda mesaj olurdu. Bu her mesaj sonra bir mesaj kimliği ve onun sahibi, içeriği tarafından tespit ediliyor ile başka bir tablo gibi kutunuzu olması mantıklı.