Property portal and real estate listings database schema

How a property portal models its data: properties as durable things versus listings as repeatable campaigns, agents and agencies, ordered media, amenities, price history as rows, viewings, offers and saved searches with alerts.

Property Listings ER diagram

Property portal and real estate listings database schema n1 n1 n1 n1 n1 n1 n1 n1 n1 n1 n1 n1 n1 n1 n1 n1 n1 n1 n1 n1 n1 areas idBIGINT slugVARCHAR nameVARCHAR area_kindVARCHAR parent_area_idBIGINT centre_latitudeNUMERIC centre_longitudeNUMERIC median_price_minorBIGINT currency_codeCHAR descriptionTEXT agencies idBIGINT slugVARCHAR nameVARCHAR registration_numb…VARCHAR emailVARCHAR phoneVARCHAR address_lineVARCHAR area_idBIGINT subscription_tierVARCHAR listing_quotaINTEGER is_activeBOOLEAN created_atTIMESTAMPTZ agents idBIGINT agency_idBIGINT full_nameVARCHAR emailVARCHAR phoneVARCHAR licence_numberVARCHAR photo_urlVARCHAR bioTEXT is_activeBOOLEAN created_atTIMESTAMPTZ properties idBIGINT property_referenceVARCHAR address_line1VARCHAR address_line2VARCHAR area_idBIGINT postcodeVARCHAR country_codeCHAR latitudeNUMERIC longitudeNUMERIC property_typeVARCHAR bedroomsSMALLINT bathroomsNUMERIC floor_area_sqmNUMERIC plot_area_sqmNUMERIC year_builtSMALLINT tenureVARCHAR energy_ratingVARCHAR created_atTIMESTAMPTZ listings idBIGINT property_idBIGINT agent_idBIGINT agency_idBIGINT listing_referenceVARCHAR listing_typeVARCHAR statusVARCHAR headlineVARCHAR descriptionTEXT asking_price_minorBIGINT currency_codeCHAR rent_periodVARCHAR is_price_on_appli…BOOLEAN available_fromDATE listed_atTIMESTAMPTZ delisted_atTIMESTAMPTZ delist_reasonVARCHAR view_countINTEGER enquiry_countINTEGER listing_price_histo… idBIGINT listing_idBIGINT price_minorBIGINT currency_codeCHAR change_kindVARCHAR changed_by_agent_…BIGINT effective_atTIMESTAMPTZ noteVARCHAR listing_media idBIGINT listing_idBIGINT media_kindVARCHAR storage_keyVARCHAR captionVARCHAR sort_orderINTEGER is_primaryBOOLEAN width_pxINTEGER height_pxINTEGER uploaded_atTIMESTAMPTZ features idBIGINT codeVARCHAR labelVARCHAR categoryVARCHAR is_filterableBOOLEAN sort_orderINTEGER property_features property_idBIGINT feature_idBIGINT detailVARCHAR verified_atTIMESTAMPTZ contacts idBIGINT emailVARCHAR full_nameVARCHAR phoneVARCHAR contact_kindVARCHAR preferred_area_idBIGINT budget_max_minorBIGINT currency_codeCHAR marketing_opt_inBOOLEAN created_atTIMESTAMPTZ viewings idBIGINT listing_idBIGINT contact_idBIGINT agent_idBIGINT viewing_kindVARCHAR scheduled_atTIMESTAMPTZ duration_minutesSMALLINT statusVARCHAR cancelled_reasonVARCHAR feedbackTEXT feedback_ratingSMALLINT created_atTIMESTAMPTZ offers idBIGINT listing_idBIGINT contact_idBIGINT amount_minorBIGINT currency_codeCHAR statusVARCHAR supersedes_offer_…BIGINT is_chain_freeBOOLEAN funding_kindVARCHAR conditionsTEXT submitted_atTIMESTAMPTZ responded_atTIMESTAMPTZ expires_atTIMESTAMPTZ saved_searches idBIGINT contact_idBIGINT nameVARCHAR criteriaJSONB area_idBIGINT listing_typeVARCHAR min_price_minorBIGINT max_price_minorBIGINT alert_frequencyVARCHAR alert_channelVARCHAR last_alerted_atTIMESTAMPTZ last_match_countINTEGER is_activeBOOLEAN created_atTIMESTAMPTZ

Related database schemas