Giả sử có một lược đồ cơ sở dữ liệu được định nghĩa như thế này:
Person.mail_address_key ----- Address.address_key
Person.billing_address_key ----- Address.address_key
A Person
có một địa chỉ gửi thư và một địa chỉ thanh toán. Là một kỹ thuật không chuẩn hóa, chúng tôi tạo một Address
bảng riêng biệt . Hầu hết thời gian mail_address_key
và billing_address_key
của một đơn Person
sẽ có cùng một giá trị (nghĩa là: khóa địa chỉ gửi thư và thanh toán của họ sẽ giống nhau).
Trong cơ sở dữ liệu của tôi , Address
có một danh tính (khóa địa chỉ). Nhưng, trong mô hình miền của tôi , tôi không thấy một lý do thuyết phục nào Address
để trở thành một Thực thể, tôi muốn nó trở thành Đối tượng Giá trị.
- Trong DDD, đây có phải là một lựa chọn không? Hay các Đối tượng Giá trị thường là một nhóm các cột (trái ngược với bảng)? Tôi chơi trò bênh vực của quỷ ở đây, vì tôi không nghĩ rằng cơ sở dữ liệu nên ra lệnh cấu trúc mô hình miền, nhưng chỉ cần đảm bảo.
- Nếu vậy, địa chỉ / khi / làm thế nào để mất địa chỉ cơ sở dữ liệu của nó để nó có thể được sử dụng làm Đối tượng Giá trị trong Lớp Miền? Hoặc, tôi có nên giữ định danh cơ sở dữ liệu trong Đối tượng giá trị không?
- Khi mô hình cần được duy trì trong cơ sở dữ liệu, quá trình là gì? Tôi có phải trải qua quá trình a) Tìm địa chỉ theo các trường này không, b) nếu nó không tồn tại, hãy tạo địa chỉ mới c) nếu có, cập nhật các trường?