Tôi có một ứng dụng web hiện có và muốn thêm một tính năng thẻ để người dùng có thể gắn thẻ các đối tượng hiện có. Câu hỏi đặt ra là tôi nên thêm một cột thẻ vào từng đối tượng? hoặc tôi nên bình thường hóa nó và sử dụng một bảng thẻ nơi mỗi đối tượng sẽ có một bộ sưu tập các thẻ? Tôi nghiêng về phía sau bởi vì nó cảm thấy sạch hơn, dễ dàng hơn để báo cáo và dễ dàng hơn để tạo một đám mây từ khóa. Nhưng kể từ khi tôi biết điều này đã được giải quyết 1000 lần tôi muốn hỏi và xem nếu tôi đang thiếu một cái gì đó?Làm cách nào để mô hình thẻ trong cơ sở dữ liệu?
9
A
Trả lời
6
Bạn có thấy trước người dùng cần liên kết nhiều thẻ với một đối tượng không?
Nếu không, thêm TAG_ID fk vào bảng OBJECT. Nếu không, bạn sẽ cần ba bảng trong tổng số để mô hình một cách chính xác một nhiều-nhiều mối quan hệ:
OBJECT
- object_id (pk)
OBJECT_TAG_XREF
- object_id (pk, fk đến OBJECT)
- TAG_ID (pk, fk đến TAG)
TAG
- TAG_ID (pk)
4
Có, bạn nên bình thường hóa nó. 'Cột thẻ' sẽ chỉ hỗ trợ một thẻ cho mỗi bản ghi hoặc sẽ có hiệu suất tìm kiếm ghê gớm.
2
Chắc chắn bình thường hóa. Một bảng cho các thẻ, một bảng cho các đối tượng hiện có của bạn và một bảng các liên kết giữa chúng.
Các vấn đề liên quan
- 1. Cập nhật mô hình từ cơ sở dữ liệu (Cơ sở dữ liệu đầu tiên)
- 2. Mô hình với cơ sở dữ liệu trong MVVM
- 3. Làm cách nào để gắn thẻ thành phần cơ sở dữ liệu trong UML?
- 4. Mô hình Cơ sở dữ liệu Công thức Thực phẩm
- 5. mô hình lớp cơ sở trừu tượng và các lớp con trong cơ sở dữ liệu
- 6. Mô hình cơ sở dữ liệu về hóa đơn
- 7. Cách lấy hình ảnh từ cơ sở dữ liệu MySQL và hiển thị trong thẻ html
- 8. Làm cách nào để sao lưu tệp cơ sở dữ liệu vào thẻ SD trên Android?
- 9. Làm cách nào để xóa khỏi cơ sở dữ liệu?
- 10. cách tắt cấu hình cơ sở dữ liệu trong symfony2
- 11. Làm cách nào để mở cơ sở dữ liệu lõi?
- 12. Làm cách nào để xóa cơ sở dữ liệu MySQL?
- 13. Mô hình Django MVC cho các mô hình không được cơ sở dữ liệu điều khiển?
- 14. Cách lưu trữ từ điển trong trường mô hình cơ sở dữ liệu Django
- 15. Cách lưu hình ảnh trong cơ sở dữ liệu SQLite
- 16. Làm thế nào để sao chép cơ sở dữ liệu trong sử dụng cơ sở dữ liệu khác trong django?
- 17. Làm cách nào để định cấu hình NLog để ghi vào cơ sở dữ liệu?
- 18. SQL Server: Làm thế nào để biết cơ sở dữ liệu là một cơ sở dữ liệu hệ thống?
- 19. Làm cách nào để khôi phục một cơ sở dữ liệu từ mysqldump chứa nhiều cơ sở dữ liệu?
- 20. Làm cách nào để di chuyển Sơ đồ cơ sở dữ liệu SQL Server sang cơ sở dữ liệu khác?
- 21. Làm cách nào để chèn bản ghi từ cơ sở dữ liệu mongo này vào cơ sở dữ liệu khác?
- 22. Cấu hình nhiều cơ sở dữ liệu trong Django 1.2
- 23. Làm cách nào để truy vấn cơ sở dữ liệu MySQL từ ứng dụng Rails không có mô hình?
- 24. XSD cơ sở dữ liệu chuẩn trung gian để mô tả lược đồ cơ sở dữ liệu quan hệ
- 25. Làm cách nào để thay đổi kích thước hình ảnh Kẹp giấy sau khi đã thêm cơ sở dữ liệu vào cơ sở dữ liệu?
- 26. Làm thế nào để tạo lại cơ sở dữ liệu trong EF nếu mô hình của tôi thay đổi?
- 27. Làm cách nào để Rails Views xử lý các thẻ HTML từ nội dung cơ sở dữ liệu?
- 28. Cách tốt nhất để lưu trữ thẻ trong cơ sở dữ liệu là gì?
- 29. Tái cấu trúc cách xa mô hình Cơ sở dữ liệu được chia sẻ
- 30. Neo4j (hoặc bất kỳ cơ sở dữ liệu biểu đồ nào khác) mô hình
Làm thế nào sẽ thay đổi này để buộc thẻ cho người dùng? OBJECT_ID có trở thành USER_ID không? –
@JuniperAsh: Bạn sẽ phải thêm cột 'user_id' vào' OBJECT_TAG_XREF' - giống như hai cột khác, khóa chính và khóa ngoài cho bảng người dùng. –
Làm cho ý nghĩa hơn nhiều! Cảm ơn bạn! –