Django房地产网站的PostgreSQL数据库设计

PostgreSQL database design for Django real estate website

我在一个房地产网站上工作,正在努力为我的数据库定义设计。数据库需要存储属性,属性,属性 category/subcategory,并将它们链接在一起。我可以通过 hard-coding 属性 categories/subcategories 在代码中轻松解决上述问题,但希望它更动态。

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

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

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

注意:我在 Django 中这样做。

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

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

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