Coba pendekatan ini:
Cari tahu entitas (atau entitas) mana yang menjadi pahlawan
Dengan 'pahlawan', maksud saya entitas yang menjadi pusat basis data. Mari kita ambil contoh Anda. Pahlawan dari contoh real estat adalah rumah*.
Cari tahu kepemilikannya
Telusuri entitas lain, seperti pemilik, agensi, gambar, dan ulasan dan tanyakan pada diri Anda apakah masuk akal untuk menempatkan informasi mereka bersama dengan rumah. Apakah Anda akan menghapus cascading pada salah satu kunci asing di database relasional Anda? Jika demikian, maka itu menyiratkan kepemilikan.
Cari tahu apakah memang penting untuk mendenormalisasi data
Anda akan memiliki detail agensi (dan mungkin pemilik) yang tersebar di beberapa rumah. Apakah itu penting?
Koleksi rumah Anda mungkin akan terlihat seperti ini:
house: {
owner,
agency,
images[], // recommend references to GridFS here
reviews[] // you probably won't get too many of these for a single house
}
*Sebenarnya, ini mungkin iklan rumah (karena rumah biasanya diiklankan di situs web real-estate dan mungkin Anda sebenarnya tertarik) jadi pertimbangkan saja