Mysql
 sql >> Cơ Sở Dữ Liệu >  >> RDS >> Mysql

Thiết kế cơ sở dữ liệu Mysql cho khách hàng nhiều địa chỉ và địa chỉ mặc định

Theo quan điểm của tôi, bạn đang làm cho điều này quá phức tạp. Không cần thiết phải làm cho giản đồ địa chỉ của bạn được chuẩn hóa quá mức. Hầu hết các hệ thống mà tôi đã thấy xử lý nhiều địa chỉ khách hàng có một bảng khách hàng giống như của bạn, và sau đó có một bảng địa chỉ, như sau:

 customer_id
 address_ordinal  (small number for each customer: 0,1,2,3 etc).
 primary    (boolean)
 address_1
 address_2
 locality   (city, village, etc)
 province   (state, etc)
 postcode   (zip, postcode etc)
 country

customer_id là khóa ngoại cho customer bàn. Khóa chính là tổng hợp của (customer_id , address_ordinal ). primary cột là true nếu địa chỉ là địa chỉ chính.

Đối với câu hỏi của bạn về nhà cung cấp, bạn có thể muốn tạo một bảng chung có tên là "địa chỉ liên hệ" và cung cấp cho cả khách hàng và nhà cung cấp của bạn contact_ids.

Nếu hệ thống của bạn chứa bảng tham chiếu (có thể là thứ bạn mua từ nhà cung cấp dữ liệu) chứa các hàng (mã bưu điện, địa phương, tỉnh), bạn có thể sử dụng bảng đó để điền bảng địa chỉ của mình. Nhưng bạn nên tránh buộc các địa chỉ của mình chỉ chứa các mã bưu điện được mã hóa cứng:các bảng tham chiếu đó rất nhanh lỗi thời.



  1. Database
  2.   
  3. Mysql
  4.   
  5. Oracle
  6.   
  7. Sqlserver
  8.   
  9. PostgreSQL
  10.   
  11. Access
  12.   
  13. SQLite
  14.   
  15. MariaDB
  1. Cách đặt hàng lên đầu trong truy vấn mysql.

  2. Bạn không thể chỉ định bảng đích để cập nhật trong mệnh đề FROM

  3. MySQL TIMEDIFF () so với TIMESTAMPDIFF ():Sự khác biệt là gì?

  4. Làm thế nào để chọn một khách hàng cụ thể?

  5. Làm thế nào để chọn các bài đăng do tôi hoặc bạn bè của tôi tạo trong một nguồn cấp tin tức?