Xuất phát từ nền cơ sở dữ liệu quan hệ, vì tôi chắc chắn nhiều người khác đang tìm kiếm một số nguyên tắc vững chắc để thiết lập/thiết kế kho dữ liệu của tôi trên Google Ứng dụng động cơ. Có bất kỳ quy tắc tốt nào về ngón tay cái mà mọi người có để thiết lập các loại kho lưu trữ dữ liệu ít lược đồ này không? Tôi hiểu một số vấn đề cơ bản như không chuẩn hóa vì bạn không thể tham gia, nhưng tôi đã tự hỏi những người khác có đề xuất gì.Hướng dẫn thiết kế ít giản đồ cho kho dữ liệu Google App Engine và các NoSQL DB khác
Ví dụ đơn giản cụ thể tôi đang làm việc với các mối quan tâm lưu trữ tìm kiếm và kết quả của chúng. Ví dụ tôi đã sau hai mô hình được xác định trong ứng dụng Google App Engine của tôi sử dụng Python:
class Search(db.Model):
who = db.StringProperty()
what = db.StringProperty()
where = db.StringProperty()
createDate = db.DateTimeProperty(auto_now_add=True)
class SearchResult(db.Model):
title = db.StringProperty()
content = db.StringProperty()
who = db.StringProperty()
what = db.StringProperty()
where = db.StringProperty()
createDate = db.DateTimeProperty(auto_now_add=True)
Tôi đang sao chép một loạt các thuộc tính giữa các mô hình vì lợi ích của denormalization kể từ khi tôi không thể tham gia Search
và SearchResult
cùng với nhau. Điều này có nghĩa không? Hoặc tôi nên lưu trữ một ID tìm kiếm trong mô hình SearchResult
và có hiệu quả "nối" hai mô hình trong mã khi tôi lấy chúng từ kho dữ liệu không? Xin lưu ý rằng đây là một ví dụ đơn giản. Cả hai mô hình sẽ có nhiều thuộc tính hơn và cách tôi tiếp cận điều này ngay bây giờ, tôi sẽ đặt bất kỳ thuộc tính nào tôi đưa vào mô hình Tìm kiếm trong mô hình SearchResult
.
Tuyệt vời, cảm ơn người đàn ông. – jamesaharvey