Het eerste wat ik zou doen, is het gebruik van een ORM aanbevelen zoals Linq-To-Sql of NHibernate waarmee u objectrepresentaties van uw gegevensmodel krijgt, waardoor het veel eenvoudiger wordt om complexe zaken zoals veel-op-veel CRUD-bewerkingen af te handelen.
Als een ORM geen deel uitmaakt van uw gereedschapsset, ziet dit er als volgt uit in SOL.
Users UserAddresses Addresses ======= ============= ========= Id Id Id FirstName UserId City LastName AddressId State Zip
Onze tabellen zijn als volgt samengevoegd:
Users.Id -> UserAddresses.UserId Addresses.Id -> UserAddresses.AddressId
- Alle records in Gebruikers op basis van 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)
- Alle records in Adressen op basis van Users.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)