Ben (en azından benim için) zor bir karar geçiyorum ...
Benim web sitesi açılan listesinde ve seçilen ülkeye göre şehirler listesinde ülkelerin bir listesini olurdu. Ben db seviyesinde listesini doldurmak için karar:
CREATE TABLE Country
(
countryID - PK
countryName - FK
);
CREATE TABLE City
(
cityID - PK
countryID - FK
cityName
);
CREATE TABLE Register
(
registerID - PK
cityID - FK
)
Ancak, kayıt formu kullanıcı droplist üzerinde şehir adı, kullanıcı CityID görmezsiniz, çünkü bu, kayıt içine kayıt eklerken kodlama gibi ülkelerde / şehirlerde kaydını alma php arka-uç bazı karmaşık eklemek olabilir, bu yüzden olacak vb seçilmiş CityName dayalı CityID getirmesi nedenle, ben niye ben sadece listede aşağı damla ve kayıt tablo görünmesi sabit uygulama düzeyinde ülkeleri ve şehirleri listesi koymak söyledi:
CREATE TABLE Register
(
registerID - PK
cityName
)
CityName bize katılmak veya arayın birden fazla tablo ve böylece sonra, vb CityName kapmak bir şehir için belirli bir kimliği almak zorunda kalmadan doğrudan eklenir alır ..
Ben sadece böyle Üyesi ve Post / Konuyu tablolar arasındaki ilişkileri yapma gibi önemli tablolarda normale olacaktır. Bir üye birden çok konudan bir-çok ilişkisi olabilir. Aksi takdirde, ülkeler listesine gibi çok değer ilgili şeyler sadelik ve rap uğruna DB düzeyde kabul edilmeyecektir.
Sen ne düşünüyorsun? Önerileri ...