分类广告项目规范的数据库设计

Database design for classified ad item specification

我正在开发一个包含 12 个类别的分类广告网站。例如。类别 vehicles 包含项目 carsbikesCommercial Vehiclesspare parts。以下是发布广告的流程图:

我需要在发布广告时在表单的下拉列表中向用户显示上图Form Filled部分中的说明。 car 规范将是它的 color,engine,fuel type.

ERD 如下:

应该如何解决这个问题,最佳做法是什么,当前的设计是否正确?

总的来说,这看起来还不错。以下是一些观察结果:

  1. likes.iker_id 应该指向 users.id?只是想了解您的模型。
  2. 我可能会将图片 table 更改为每行一张图片,然后添加一个顺序进行排序。
  3. 这里的一个问题是您打算如何查看图形模型。实际上,您可能有一个可以轻松遍历到一定深度(几深)的图形。我假设您这样做是为了推荐广告。如果是这样,我认为这就足够了。如果不是,最好进一步讨论您的目标 rdbms。

希望对您有所帮助:
在简化的情况下,您将需要一些额外的表格。

所以,您正在尝试能够对您的类别中的不同项目有不同的规格?或者换句话说,就像电子商务网站中不同类型的产品具有不同的属性。

如果这是您要解决的问题,那么您应该查看 Entity–Attribute–Value (EAV) model that is how the problem is solved. By the way, one of the most popular open source e-commerce engines uses it as well

我同意看看 EAV 模型...

对于其他一些 table,您有许多规范化问题 - 例如:

  • 你应该有一个单独的地址 table(不是广告的一部分)
  • 你应该有一张图片 table(和 link 那些与另一个 table 的广告)
  • 你应该有一个人 table - 并且 link 作为 'owner'
  • 的广告
  • 'favorite'的想法也应该在这个person->ad关系table作为角色或类型栏