MongoDB
 sql >> Cơ Sở Dữ Liệu >  >> NoSQL >> MongoDB

kế thừa trong cơ sở dữ liệu tài liệu?

Tôi biết câu trả lời này hơi muộn, nhưng đối với MongoDB, có lẽ bạn đang xem xét điều gì đó hơi khác một chút.

Mongo là schemaless, vì vậy khái niệm "tablePerHierarchy" không nhất thiết phải hữu ích.

Giả sử như sau

class A
  property X
  property Y
  property Z

class B inherits from A
  property W

Trong RDMS, bạn có thể sẽ có một cái gì đó như thế này

table A: columns X, Y, Z
table B: columns X, Y, Z, W

Nhưng MongoDB không có lược đồ. Vì vậy, bạn không cần phải cấu trúc dữ liệu theo cách này. Thay vào đó, bạn sẽ có một "bộ sưu tập" chứa tất cả các đối tượng (hoặc "tài liệu") thuộc loại A hoặc B (hoặc C ...).

Vì vậy, bộ sưu tập của bạn sẽ là một loạt các đối tượng như thế này:

{"_id":"1", "X":1, "Y":2, "Z":3}
{"_id":"2", "X":5, "Y":6, "Z":7, "W":6}

Bạn sẽ nhận thấy rằng tôi đang lưu trữ các đối tượng kiểu A ngay bên cạnh các đối tượng kiểu B. MongoDB thực hiện điều này rất dễ dàng. Chỉ cần kéo một Tài liệu từ Bộ sưu tập lên và nó "kỳ diệu" có tất cả các trường / thuộc tính thích hợp.

Tuy nhiên, nếu bạn có "đối tượng dữ liệu" hoặc "thực thể", bạn có thể làm cho cuộc sống của mình dễ dàng hơn bằng cách thêm một loại.

{"_id":"1", "type":"A", "X":1, "Y":2, "Z":3}
{"_id":"2", "type":"B", "X":5, "Y":6, "Z":7, "W":6}

Điều này giúp bạn dễ dàng viết một lớp factory để tải các đối tượng của bạn.



  1. Redis
  2.   
  3. MongoDB
  4.   
  5. Memcached
  6.   
  7. HBase
  8.   
  9. CouchDB
  1. Giúp xác định một công cụ GUI MongoDB tuyệt vời

  2. Làm cách nào để chạy MongoDB và Mongo-express với docker-soạn?

  3. Mongoose dữ liệu hết hạn nhưng vẫn giữ trong cơ sở dữ liệu

  4. Chuyển đổi chuỗi thành ngày tháng trong mongodb

  5. Phân vùng bản ghi trong bộ sưu tập trong MongoDB