En iyi yanıtlayıcılar
2 Tabloya veri kaydetme

Soru
-
Merhaba arkadaşlar,
bir iş başvuru formum var.
bu formda iş tecrübelerini databasede nasıl tutmamı tavsiyr edersiniz ?
Yani tabloda bütün verilerimi,yoksa tecrübeler,referanslar,alınan kurslar vs her biri için ayı ayrımı olması daha iyi.
- Düzenleyen Serkan Tepe 7 Ekim 2013 Pazartesi 07:52
Yanıtlar
-
Serkan Bey,
En basit yaklaşım olarak herhangi bir orm kullanmadığınızı da varsayarak db tarafında bulunan tabloların business karşılığı olan objectlerini oluşturabilirsiniz. Client tan aldığınız dataları bu objectlere doldurduktan sonra önerebileceğim transaction kullanmak olabilir transaction ı uygulama tarafında da database tarafında da tasarlayabilirsiniz bu size kalmış bir konu. Uygulama tarafında biraz daha zahmetli olabilir ilişkili tablolar olduğu için birisi insert edildiğinde onun idsini alıp diğer tabloya göndermeniz gerekecektir işte bunları database tarafında gerçekleştirmek bence bu ihtiyaç için daha uygun olabilir.
Database için bir procedur yapmanız ve tüm parametleri bu procedur'e göndererek tek bir procedure de kayıt işleminizi tamamlamanız probleminizi çözebilir diye düşünüyorum.
Faydalı olması dileğiyle..
- Yanıt Olarak İşaretleyen Serkan Tepe 7 Ekim 2013 Pazartesi 12:47
Tüm Yanıtlar
-
Ayrı ayrı olması gerekiyor. Bazı durumlarda 3. bir tabloya da ihtiyaç olur. Örneğin yabancı diller için;
Kişi Tablosu
Id
Ad
Soyad
.
.
YabancıDiller Tablosu
Id
YabancıDil
KişilerDiller Tablosu
Id
KişiId
YabancıDilId
gibi
e-mail: onay[nokta]yalciner[at]hotmail[nokta]com
- Düzenleyen Önay YALÇINERModerator 7 Ekim 2013 Pazartesi 08:04
-
Merhaba Serkan Bey,
Tüm verilerinizi atomik düzeyde sql normalizasyon kuralları çerçevesinde tutmanızı tavsiye ederim.
Örneğin tecrübeler için ayrı bir tablo olması gerektiği gibi referanslar için de ayrı bir tablo oluşturulmalıdır.
Referanslar tablosu içerisinde de referansın tüm bilgileri ayrıştırılırsa sorgulama aşamasında daha detaylı ve düzgün sorgu hazırlayabilmeniz açısından iyi olacaktır ; örneğin referansın adı ve soyadı ayrı ayrı kolonlarda tutulması.
Normalizasyonun en kısa tanımı verilerin düzenli olarak tutulmasını sağlayan kurallar topluluğudur. Bu kuralları inceleyecek olursak ;
1NF : Tekrarlanan sutun yapılarını ortadan kaldırmak gerekir ve bir kolonda yalnızca bir veri olmalıdır.
2NF : Kilit özelliğine sahip sutunlar Primary Key'lerle tam bağımlı olmalıdır.
3NF : Kısmi bağımlılık ortadan kaldırılmalı ve tablo içerisindeki anahtarsız alan bir başka tablodaki anahtarsız alana bağımlı olmamalıdır
Son olarak da tablolar arası ilişkilere dikkat edilmelidir.
- Yanıt Olarak Öneren Önay YALÇINERModerator 7 Ekim 2013 Pazartesi 08:15
- Yanıt Önerisini Geri Alan Serkan Tepe 7 Ekim 2013 Pazartesi 08:35
-
-
Databaseinizin ne oldugunu soylememissiniz. Tablo dediginize gore buyuk ihtimalle MS SQL server, PostgreSQL, MySQL ... gibi SQL serisi bir database. O zaman ayri ayri tablolarda iliskili olarak tutmaniz gerekiyor. Bunun icin normalizasyon konusunu inceleyin (http://en.wikipedia.org/wiki/Database_normalization). Hazir database semalari da var (http://www.databaseanswers.org/data_models/).
Eger NoSQL database kullaniyorsaniz, cogunda bunun icin tek 'tablo' - koleksiyon kullanmaniz hem yeterli hem uygun.
-
Serkan Bey,
En basit yaklaşım olarak herhangi bir orm kullanmadığınızı da varsayarak db tarafında bulunan tabloların business karşılığı olan objectlerini oluşturabilirsiniz. Client tan aldığınız dataları bu objectlere doldurduktan sonra önerebileceğim transaction kullanmak olabilir transaction ı uygulama tarafında da database tarafında da tasarlayabilirsiniz bu size kalmış bir konu. Uygulama tarafında biraz daha zahmetli olabilir ilişkili tablolar olduğu için birisi insert edildiğinde onun idsini alıp diğer tabloya göndermeniz gerekecektir işte bunları database tarafında gerçekleştirmek bence bu ihtiyaç için daha uygun olabilir.
Database için bir procedur yapmanız ve tüm parametleri bu procedur'e göndererek tek bir procedure de kayıt işleminizi tamamlamanız probleminizi çözebilir diye düşünüyorum.
Faydalı olması dileğiyle..
- Yanıt Olarak İşaretleyen Serkan Tepe 7 Ekim 2013 Pazartesi 12:47
-
-
-
-
Database'inizin ne oldugunu siz de soylememissiniz :)
SQL server ise inserted tablosundan eklenen id'yi alabilirsiniz.
DECLARE @id TABLE (id INT); insert into tabloAdi (baskaAlan) OUTPUT INSERTED.tabloId INTO @id values (@baskaAlan); SELECT id FROM @id;
UniqueIdentifier kullanirsaniz, almaniza gerek kalmaz onceden siz verebilirsiniz (ancak uniqueidentifier pek anlasilmadigindan olsa gerek buna karsi cikan cok var).
Linq ile de SubmitChanges ya da SaveChanges sonrasi objenin ID alanini control edebilirsiniz.
NoSQL database kullaniyorsaniz zaten almaniza gerek yok, gene de almak isterseniz basitce insert ettiginiz nesnenin ID alanina bakin property olarak.
-
-