首页 > 解决方案 > Django房地产网站的PostgreSQL数据库设计

问题描述

我正在开发一个房地产网站,并且正在努力为我的数据库定义设计。数据库需要存储属性、属性、属性类别/子类别,并将它们链接在一起。我可以通过在代码中硬编码属性类别/子类别来轻松解决上述问题,但希望它更加动态。

现在,我想有一个具有 ID 和类别标题的类别表,然后是具有它所属类别的 ID、标题和 ID 的子类别表,所以这是一个相当基本的多对一关系。

我还需要一种更动态的属性方法,以便我有一个表,其中包含 ID、标题和 subcategory_id,我将在其中限制属性,以便它们只能用于某些子类别中的属性。

话虽如此,我在弄清楚如何为属性形成表格时遇到了问题,以便它存储所有属性及其属性/值对。

注意:我在 Django 中这样做。

标签: djangopostgresqldatabase-designdatabase-relations

解决方案


PostgreSQL 至少有两种实现动态属性的可能性:

  • 将 EAV 模型实现为关系数据库方案的扩展
  • 使用混合 SQL/NoSQL 方法(关系表中的 JSON/BSON 列类型)

第二种方法似乎具有较少的性能问题,但在代码中结合 SQL 和 JQuery-like 可能难以维护。由于已知的性能问题,第一种方法适用于相对较小的数据量(100K-1M 对象,最多 10 个属性)。


推荐阅读