Büyük bir eski moda "o bağlıdır" gitmek zorunda kalacak.
Tabii ki bu masada bir çeşit anahtara ihtiyacınız olacak. Bir UserID ile başlayabilirsiniz. Bu sadece artan bir INT (veya 2.1 milyondan fazla kullanıcınız olacaksa bigint) olabilir.
Ben de çok kullanıcı veritabanları ana kullanıcı kimliği olarak GUID kullanın gördüm. Ancak bu, PK'ler için GUID'leri kullanarak tamamen farklı bir solucan kutusu açıyor.
Daha sonra veritabanınızı ne kadar normalleştirmek istediğinize karar vermeniz gerekir. Kullanıcınızın birden fazla e-posta almasına izin verecek misiniz? birden fazla telefon numarası? Eğer öyleyse, farklı bir tabloda olmalıdırlar.
Ana kullanıcı tablosunu şu şekilde tutardım:
- kullanabileceğiniz bir çeşit kimlik veya PK
- Adı / Soyadı veya sadece bir kullanıcı adı
- kullanıcının bir tür durumu (etkin, devre dışı, vb.) - (bir durum tablosuna tinyint bağlantısı)
- oluşturulduğu tarih
Bu sizin başlangıç noktanız olmalı.
Oradan, depolamak istediğiniz öğeye göre başka sütunlar ekleyebilirsiniz. E-posta bir e-posta tablosuna, bir adres tablosuna adres, vb. Bağlanabilir. Parola karma + tuz kullanabilir, ancak openids'i düşündünüz mü?
Bu makaleyi okumanızı şiddetle tavsiye ederim - http://www.sqlservercentral.com/articles/data-modeling/71725/