En iyi yanıtlayıcılar
primary key kullanmadan tabloları bağlama

Soru
-
merhaba normal şartlarda iki tablonun bağlantısını yapmak için birbirlerine guid atanıyor.ancak ben bunun yerine tabloları birbirleriyle ilişkilendirmek için relation adında bir tablo oluşturdum,çünkü n tane personel bir departmana bağlı bu durumda her personel için departman detay tablosu oluşturup oraya kayıt yapmam gerekiyor, ve bunun gibi diğer tablolar içinde her tablonun detayı olucaktı tablo fazlalığı olmaması için bende bu şekilde yaptım
relation table
assetx assetY
personelId(123456) departmanId (6544521)
personId(569656) departmanId(6544521)
bu mantık doğrumu daha pratik varmı
- Düzenleyen mustafa3434 24 Kasım 2013 Pazar 23:54 asd
Yanıtlar
-
Sen coka-coklu iliskiler icin kullanilan ara tabloyu kesfetmissin :) Tabii o tabloya Relation adini vermek pek mantikli degil. Tablolar Personel ve Departmanlar ise PersonelDepartman veya DepartmanPersonel daha uygun bir isim. Bu ornek zaten SQL serverin meshur ornek databasei Northwind'de var:
Customers 1 > --- + 0* Orders 0* +---< Employees
Customers: primary key CustomerId,
Employees Primary key EmployeeId
Orders tablosunda: Primary key OrderID. CustomerId ve EmployeeID ile her iki tabloya referans var (baska alanlar olabilir ya da olamayabilir).
Senin modelinde de:
Personel: PersonelID, ...
Departman: DepartmanID, ....
PersonelDepartman: PersonelID, DepartmanID
yani bir kisi N tane departmana uye olabilir, ve bir departmanin N tane personeli olabilir demek.
Yok eger seninkinde bir personel sadece tek bir Departmana ait olabiliyorsa o zaman:
Personel: PersonelID, DepartmanID, ...
Departman: DepartmanID, ....
- Yanıt Olarak İşaretleyen mustafa3434 8 Ekim 2013 Salı 10:36
Tüm Yanıtlar
-
Sen coka-coklu iliskiler icin kullanilan ara tabloyu kesfetmissin :) Tabii o tabloya Relation adini vermek pek mantikli degil. Tablolar Personel ve Departmanlar ise PersonelDepartman veya DepartmanPersonel daha uygun bir isim. Bu ornek zaten SQL serverin meshur ornek databasei Northwind'de var:
Customers 1 > --- + 0* Orders 0* +---< Employees
Customers: primary key CustomerId,
Employees Primary key EmployeeId
Orders tablosunda: Primary key OrderID. CustomerId ve EmployeeID ile her iki tabloya referans var (baska alanlar olabilir ya da olamayabilir).
Senin modelinde de:
Personel: PersonelID, ...
Departman: DepartmanID, ....
PersonelDepartman: PersonelID, DepartmanID
yani bir kisi N tane departmana uye olabilir, ve bir departmanin N tane personeli olabilir demek.
Yok eger seninkinde bir personel sadece tek bir Departmana ait olabiliyorsa o zaman:
Personel: PersonelID, DepartmanID, ...
Departman: DepartmanID, ....
- Yanıt Olarak İşaretleyen mustafa3434 8 Ekim 2013 Salı 10:36
-