Als erstes würde ich empfehlen, ein ORM wie Linq-To-Sql zu verwenden oder NHibernate Dadurch erhalten Sie Objektdarstellungen Ihres Datenmodells, die es viel einfacher machen, komplexe Dinge wie Many-to-Many-CRUD-Operationen zu handhaben.
Wenn ein ORM nicht Teil Ihres Toolsets ist, dann würde dies in SOL so aussehen.
Users UserAddresses Addresses
======= ============= =========
Id Id Id
FirstName UserId City
LastName AddressId State
Zip
Unsere Tabellen sind wie folgt verbunden:
Users.Id -> UserAddresses.UserId Addresses.Id -> UserAddresses.AddressId
- Alle Datensätze in Benutzern basierend auf 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 Datensätze in Adressen basierend auf 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)