Hal pertama yang akan saya lakukan adalah merekomendasikan menggunakan ORM seperti Linq-To-Sql atau NHibernate yang akan memberi Anda representasi objek dari model data Anda yang membuatnya lebih mudah untuk menangani hal-hal kompleks seperti operasi CRUD banyak-ke-banyak.
Jika ORM bukan bagian dari set alat Anda, maka inilah tampilannya di SOL.
Users UserAddresses Addresses
======= ============= =========
Id Id Id
FirstName UserId City
LastName AddressId State
Zip
Tabel kami digabungkan seperti ini:
Users.Id -> UserAddresses.UserId Addresses.Id -> UserAddresses.AddressId
- Semua catatan di Pengguna berdasarkan Addresses.Id
SELECT Users.*
FROM Addresses INNER JOIN
UserAddresses ON Addresses.Id = UserAddresses.AddressId INNER JOIN
Users ON UserAddresses.UserId = Users.Id
WHERE (Addresses.Id = @AddressId)
- Semua catatan di Alamat berdasarkan User.Id
SELECT Addresses.*
FROM Addresses INNER JOIN
UserAddresses ON Addresses.Id = UserAddresses.AddressId INNER JOIN
Users ON UserAddresses.UserId = Users.Id
WHERE (Users.Id = @UserId)