[]

veritabanı yapısı
Bir veritabanında tek kullanıcı için misal, kullanicibilgileri, mesajlar, kisiseltakvim, ayarlar gibi tablolar var.. Bunu çok kullanıcı için değiştirmek istediğimizde veritabanı yapısını nasıl kurmamız daha iyi..
Her bir kullanıcı için yeni bir veritabanı açmak mı, yoksa sütunlarda misal kullanıcı id gibi bir değerle tek bir tabloda tüm kullanıcı kayıtlarını tutmak mı? ya da bir üçüncü yol?
Her bir kullanıcı için yeni bir veritabanı açmak mı, yoksa sütunlarda misal kullanıcı id gibi bir değerle tek bir tabloda tüm kullanıcı kayıtlarını tutmak mı? ya da bir üçüncü yol?

tabi ki kullanıcı id'si ile tek bir tabloda tutmak. hatta kullanicibilgileri, mesajlar, kisiseltakvim, ayarlar vb. başka işler için kullanılmıyor sadece kullanıcıya has bir arayüz vbde kullanılıyorsa tüm veriler de tek bir tabloda tutulabilir.
- stopnsilence
(25.10.10 15:36:04)

her kullanıcı içi ayrı veritabanı (veritabanı değil de tablolar demek istemişsiniz sanırım)
açmak çok mantıksız olur.
kullanıcı tablonuz şöyle olabilir.
UserId
UserName
gerekiyor ise DepartmentId vs. de eklenebilir, bir departman tanım tablosu olduğunu varsayarsak.
mesaj kişisel takvim gibi tablolara UserId i referans verebilirsiniz.
olay en basit hali ile bu.
açmak çok mantıksız olur.
kullanıcı tablonuz şöyle olabilir.
UserId
UserName
gerekiyor ise DepartmentId vs. de eklenebilir, bir departman tanım tablosu olduğunu varsayarsak.
mesaj kişisel takvim gibi tablolara UserId i referans verebilirsiniz.
olay en basit hali ile bu.
- the piano has been drinking
(25.10.10 15:40:40)

her kullanıcı için o kullanıcıya özel bilgilerin tutulacağı 20'şer tablo var.. ayrı tablolar dersek, sadece 10 kullanıcıda 200 tablo yapar.. bir tabloda da tek kullanıcıya ait 2000 satır var, yine kullanıcı için bile 20 bin satır yapacak..
ayrı veritabanı demek istemiştim gerçekten.. yukarıdakilerin ikisi de optimum çözüm gibi gelmiyo bana, üçüncü bir yol yok mu bu iş için gerçekten?
ayrı veritabanı demek istemiştim gerçekten.. yukarıdakilerin ikisi de optimum çözüm gibi gelmiyo bana, üçüncü bir yol yok mu bu iş için gerçekten?
- vi3e
(25.10.10 15:44:58)

eğer kullanıcı bilgileri tekrar kullanılabilir bilgiler ise, yani başka bir kullanıcı için de kullanılabiliyorsa;
kullanici tablosu: kullanici_id / kullanici_ismi
kullanicibilgi tablosu : bilgi_id / bilgi_aciklama
kullanicibilgi_kullanici tablosu: kullanici_id / bilgi_id
yani bahsettiğim bir ara tablo.
yok tekrar kullanılamaz ise o zaman kullanici_id ile referanslayarak tumalısınız.
aynı tip bilgileri aynı tabloda tutmanız daha mantıklı kanımca.
ayrı veritabanları kullanılması duruma göre ileri de performansı düşürebilir. bakım maliyetini yükseltir.
kullanici tablosu: kullanici_id / kullanici_ismi
kullanicibilgi tablosu : bilgi_id / bilgi_aciklama
kullanicibilgi_kullanici tablosu: kullanici_id / bilgi_id
yani bahsettiğim bir ara tablo.
yok tekrar kullanılamaz ise o zaman kullanici_id ile referanslayarak tumalısınız.
aynı tip bilgileri aynı tabloda tutmanız daha mantıklı kanımca.
ayrı veritabanları kullanılması duruma göre ileri de performansı düşürebilir. bakım maliyetini yükseltir.
- the piano has been drinking
(25.10.10 16:02:02)

kullanicibilgileri tablosunda her kullanıcı için unique bir alan olacak.
bu kullanıcı ile
mesajlar, kisiseltakvim, ayarlar vb tablolara yeni satır girerken o kullanıcının unique id'sini foreign key olarak satırdaki user_id alanına yazacaksın.
Bu şekilde, kisiseltakvim ve diğer tablolarınıza sınırsız kişiyle ilişkili her kişi içinde teoride sınırsız kayıt açabilirsiniz.
Örnek olarak
kullanıc bilgileri
id|isim
1 ali
2 mehmet
takvim
kullanici_id | takvim_id | detay | tarih
1 1 text 01.01.01
1 2 text 02.01.01
2 3 text 02.01.01
1 4 text 02.02.01
2 5 text 03.02.01
Gördüğün gibi bir tablo üzerinde aynı veya farklı kişiler için birçok girdi yapabiliyorsun.
Senin söylemek istediğinde bu zaten.
Kısacası söylediğin yol gayet jenerik. Üçüncü bir yol araman için neden yok.
@the piano has been drinking'in yaptığı normalizasyonda bazı durumlarda hayat kurtarıcı olabilir.
bu kullanıcı ile
mesajlar, kisiseltakvim, ayarlar vb tablolara yeni satır girerken o kullanıcının unique id'sini foreign key olarak satırdaki user_id alanına yazacaksın.
Bu şekilde, kisiseltakvim ve diğer tablolarınıza sınırsız kişiyle ilişkili her kişi içinde teoride sınırsız kayıt açabilirsiniz.
Örnek olarak
kullanıc bilgileri
id|isim
1 ali
2 mehmet
takvim
kullanici_id | takvim_id | detay | tarih
1 1 text 01.01.01
1 2 text 02.01.01
2 3 text 02.01.01
1 4 text 02.02.01
2 5 text 03.02.01
Gördüğün gibi bir tablo üzerinde aynı veya farklı kişiler için birçok girdi yapabiliyorsun.
Senin söylemek istediğinde bu zaten.
Kısacası söylediğin yol gayet jenerik. Üçüncü bir yol araman için neden yok.
@the piano has been drinking'in yaptığı normalizasyonda bazı durumlarda hayat kurtarıcı olabilir.
- velhasilkelam
(25.10.10 16:14:37 ~ 16:16:47)
1