Điều đầu tiên tôi sẽ làm là khuyên bạn nên sử dụng ORM như Linq-To-Sql hoặc NHibernate điều này sẽ cung cấp cho bạn các biểu diễn đối tượng của mô hình dữ liệu của bạn, giúp việc xử lý những thứ phức tạp như nhiều đến nhiều CRUD trở nên đơn giản hơn nhiều.
Nếu ORM không phải là một phần của bộ công cụ của bạn thì đây là cách nó trông như thế nào trong SOL.
Users UserAddresses Addresses ======= ============= ========= Id Id Id FirstName UserId City LastName AddressId State Zip
Các bảng của chúng ta được nối như thế này:
Users.Id -> UserAddresses.UserId Addresses.Id -> UserAddresses.AddressId
- Tất cả các bản ghi trong Người dùng dựa trên Địa chỉ.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)
- Tất cả các bản ghi trong Địa chỉ dựa trên Người dùng.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)