Mỗi Customer
có địa chỉ thực và địa chỉ gửi thư tùy chọn. Cách ưa thích của bạn để mô hình hóa điều này là gì?Cách tốt nhất để mô hình Khách hàng <--> Địa chỉ
Lựa chọn 1. Customer
có chính nước ngoài để Address
Customer (id, phys_address_id, mail_address_id) Address (id, street, city, etc.)
Lựa chọn 2. Customer
có một-nhiều mối quan hệ với Address
, trong đó có một lĩnh vực để mô tả các loại địa chỉ
Customer (id) Address (id, customer_id, address_type, street, city, etc.)
Tùy chọn 3. Thông tin địa chỉ không được chuẩn hóa và lưu trữ trong Customer
Customer (id, phys_street, phys_city, etc. mail_street, mail_city, etc.)
Một trong những mục tiêu quan trọng của tôi là đơn giản hóa ánh xạ đối tượng-quan hệ, vì vậy tôi đang hướng tới phương pháp đầu tiên. Quan điểm của bạn là gì?
tại sao bạn sẽ tách riêng cust_address_type và địa chỉ? Các thông tin chứa trong cả hai có thể ngồi trên một bảng mà không có bất kỳ vấn đề. Tôi thấy không có lợi ích cho 3 bảng khi 2 sẽ làm. – JM4
Vì sau đó bạn có thể có 1 hoặc nhiều địa chỉ cho mỗi khách hàng, ví dụ: thanh toán, phân phối, v.v. Ngoài ra, bạn có thể dễ dàng theo dõi lịch sử thông qua các trường ngày tháng. Bạn có thể có nhiều khách hàng tại cùng một địa chỉ và coi mỗi khách hàng là một thực thể nhưng việc thay đổi địa chỉ cho một nhu cầu không ảnh hưởng đến người khác. – Karl
Mô hình này cũng phù hợp với các tình huống rất tốt nơi bạn có danh sách hầu hết các địa chỉ và chỉ định chúng (ví dụ: nếu bạn đã mua danh sách địa chỉ từ bưu điện hoặc tương tự). Hoặc nơi mà cơ sở dữ liệu của bạn đủ lớn để có hầu hết các địa chỉ trong khu vực của bạn. – Karl