Tôi có một mô hình có 3 địa chỉ: pickup, dropoff và billing. Tôi tính địa chỉ thanh toán thường là địa chỉ nhận hoặc trả hàng, do đó, từ góc độ giao diện người dùng, tôi phải có tùy chọn "giống như". Nhưng từ quan điểm DB, tôi có nên lưu trường "giống như" hay tôi nên sao chép dữ liệu?Làm cách nào để lưu trữ dữ liệu "giống như"?
Trả lời
Bạn phải có cùng một Id của một hàng từ bảng Địa chỉ trong hai cột khác nhau, PickUp và DropOff. Bằng cách này, bạn không sao chép địa chỉ, không sử dụng một số địa chỉ sentinel, và có thể dễ dàng truy vấn để xem địa chỉ Pickup có giống như DropOff hay không. Nếu một trong những thay đổi này trong tương lai, bạn luôn có thể sửa đổi giá trị Id được lưu trữ trong cột tương ứng thành một địa chỉ mới.
Bạn có thể tạo bảng có tên 'Địa chỉ' và thực hiện Pickup, Dropoff, FK thanh toán cho bảng Địa chỉ đó.
Chỉ vì địa chỉ là cùng một địa chỉ thực không có nghĩa là địa chỉ khái niệm giống nhau. Thực sự, địa chỉ của John Doe có thể là "123 Elm St.", nhưng về mặt khái niệm địa chỉ của anh ta là "địa chỉ gửi thư của John Doe".
Đặc biệt, đối với địa chỉ tôi sẽ nói có thể và nên được nhân đôi trong vòng một cơ sở dữ liệu vì trường hợp đơn giản này: xem xét hai người sống ở cùng một địa chỉ. Bây giờ một trong số họ di chuyển. Nếu bạn chỉ lưu trữ địa chỉ một lần, hãy cập nhật địa chỉ của "mover", sau đó cập nhật địa chỉ của bạn cùng phòng ban đầu.
Nhưng nói chung, hãy xem xét cách dữ liệu được gắn với dữ liệu khác. Nếu nhiều thứ có thể liên quan đến nó, hãy chắc chắn rằng một sự thay đổi cho một thứ sẽ ảnh hưởng đến tất cả.
Điểm tốt, phụ thuộc vào kịch bản mặc dù. – mpen
- 1. Làm cách nào để lưu trữ dữ liệu MySQL
- 2. jQuery lưu trữ dữ liệu bằng .data() như thế nào?
- 3. Dữ liệu lưu trữ WebStream của HTML5 được lưu trữ như thế nào?
- 4. lưu trữ dữ liệu nhị phân trên cassandra giống như MYSQL BLOB nhị phân
- 5. Cách lưu trữ dữ liệu lịch sử
- 6. Lucene làm lưu trữ dữ liệu
- 7. Làm cách nào để lưu trữ đúng các mối quan hệ dữ liệu với Bộ lưu trữ bảng Microsoft Azure?
- 8. Làm cách nào để lưu dữ liệu trong Meteor?
- 9. Làm thế nào để lưu trữ dữ liệu đồ thị trong cơ sở dữ liệu?
- 10. Làm cách nào để lưu trữ dữ liệu nhận được từ cuộc gọi Ajax?
- 11. Lưu trữ dữ liệu Twitter
- 12. Tư vấn lưu trữ dữ liệu cần thiết: Cách tốt nhất để lưu trữ dữ liệu vị trí + thời gian?
- 13. Cấu trúc dữ liệu "giống như" của Facebook
- 14. Cách sao lưu và khôi phục cơ sở dữ liệu ORACLE 11g Giống như cơ sở dữ liệu SQL2005
- 15. Cách dễ dàng để lưu trữ siêu dữ liệu về Cơ sở dữ liệu SQLite
- 16. Cách tốt nhất để lưu trữ dữ liệu
- 17. Làm thế nào để lưu trữ CLLocation bằng cách sử dụng dữ liệu lõi (iPhone)?
- 18. Làm cách nào để lưu trữ tệp nhị phân trong cơ sở dữ liệu sql?
- 19. Loại dữ liệu VBA tốt nhất`key` => `giá trị` để lưu dữ liệu giống như mảng PHP
- 20. Làm cách nào để lưu trữ dữ liệu người dùng trong WinForms?
- 21. Làm thế nào để lưu trữ dữ liệu trong cookie bằng cách sử dụng php?
- 22. Làm thế nào để lưu trữ FontFamily như một StaticResource?
- 23. Làm cách nào để buộc trình duyệt không lưu trữ dữ liệu trường biểu mẫu html?
- 24. Làm cách nào để tính toán chi phí lưu trữ thiết kế cơ sở dữ liệu?
- 25. Lưu trữ dữ liệu Const thứ bậc
- 26. Kiểu dữ liệu SQL Server để chỉ lưu trữ trường thời gian như 09:10 vv
- 27. Làm cách nào để lưu trữ số điện thoại di động trong cơ sở dữ liệu?
- 28. Làm cách nào để Dữ liệu cốt lõi có thể lưu trữ NSData?
- 29. Làm cách nào để lưu trữ băm trong cơ sở dữ liệu của tôi?
- 30. Làm cách nào để thực thi PHP được lưu trữ trong cơ sở dữ liệu MySQL?
Phải ... giải pháp hiển nhiên. Tôi nghĩ rằng tôi đã nhầm lẫn vấn đề trong đầu của tôi khi tôi nghĩ điều này lên (có một "tiết kiệm như mặc định" là tốt ...) – mpen