gpt4 book ai didi

mysql - 具有多种产品类别的电子商务网站的数据库设计

转载 作者:行者123 更新时间:2023-11-29 18:52:00 24 4
gpt4 key购买 nike

我需要为一个电子商务应用程序设计一个数据库,该应用程序具有从大头针到平面的广泛产品类别。所有产品都有不同的功能。例如,手机有内存、摄像头百万像素、屏幕尺寸等特定功能,而房屋有土地面积、层数和房间数量、车库大小等。这些特定功能与我们的产品一样多。 。虽然所有这些都有一些共同的特征,但大多数都有非常不同和特定的特征。因此,在设计数据库时,它变得有点困惑。我是第一次这样做。

我的问题是关于数据库设计的。这是我打算做的事情:

  1. 创建一个包含所有字段的主表,用于说明某个字段是通用字段还是特定字段,并将它们与相应的产品类别进行映射。所有产品都将具有“通用”字段,但仅针对某一类别显示“特定”字段。

表:ALL_COLUMNS

列:ID,姓名,类型(常见或特定),类别(手机、汽车、笔记本电脑等)

  • 从 all_columns 表中获取相应字段,同时将字段显示在前面。

  • 将用户数据与映射字段一起存储在另一个表中

  • 表:ALL_USER_DATA

    列:ID,列号,值

    我不知道什么是正确的方法以及如何通过已建立的应用程序和网站来完成它。因此,我期待有人能够判断这是否是具有高度全面且稀疏的类别和功能集的电子商务应用程序的数据库架构的正确方式。

    谢谢大家。

    最佳答案

    这个问题有很多可能的答案 - 请参阅此问题旁边的“相关”问题。

    ALL_USER_DATA 表的设计通常称为“实体/属性/值”(EAV)。它被广泛认为是可怕的(搜索 SO 来了解原因) - 它在理论上是灵活的,但想象一下找到“波音制造的翼展至少 20 米的飞机,适合具有新资格的飞行员” - 你的查询很快就会变得几乎难以理解。

    另一种方法是创建一个可以存储多态数据类型的模式 - 再次,查看 Stack Overflow了解它是如何工作的。

    简单的答案是,关系模型不太适合这种情况 - 您不想为商店使用的每种新产品类型进行架构更改,并且您不想拥有数百个不同的表/列。

    我的建议是将核心、通用信息和所有关系存储在 SQL 中,并将扩展信息存储为 XML 或 JSON。 MySQL 非常擅长查询 JSON,而且它是一种原生数据类型。

    您的数据模型将类似于:

    Categories
    ---------
    category_id
    parent_category_id
    name

    Products
    --------
    product_id
    price
    valid_for_sale
    added_date
    extended_properties (JSON/XML)

    Category_products
    -----------------
    category_id
    product_id

    关于mysql - 具有多种产品类别的电子商务网站的数据库设计,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/44327672/

    24 4 0
    Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
    广告合作:1813099741@qq.com 6ren.com