【问题标题】:Database design for classified ad item specification分类广告项目规范的数据库设计
【发布时间】:2023-12-23 05:49:01
【问题描述】:

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

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

ERD 如下:

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

【问题讨论】:

    标签: database database-design relational-database


    【解决方案1】:

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

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

    【讨论】:

    • Your first point :是的,likes.liker_id 指向的是users.id2nd point :您的意思是我需要将我的图片表更改为一张图片而不是 6 张图片(我需要从用户那里获取 6 张图片)......然后没有得到你的序数点。请详细说明这两点......非常感谢您的回答。
    【解决方案2】:

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

    【讨论】:

      【解决方案3】:

      那么,您想为您的类别中的不同商品设置不同的规格吗?或者,换句话说,就像电子商务网站中不同类型的产品具有不同的属性一样。

      如果您正在解决这个问题,那么您应该查看Entity–Attribute–Value (EAV) 模型,这是解决问题的方法。顺便说一句,最流行的开源电子商务引擎之一uses it as well

      【讨论】:

        【解决方案4】:

        我同意查看 EAV 模型...

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

        • 您应该有一个单独的地址表(不是广告的一部分)
        • 您应该有一个图片表格(并将这些表格与另一个表格链接到广告)
        • 您应该有一个人员表 - 并将其作为“所有者”链接到广告
        • “最喜欢”的概念也应该在此人->作为角色或类型列的广告关系表中

        【讨论】: