具有多种功能的产品的数据库设计

Posted

技术标签:

【中文标题】具有多种功能的产品的数据库设计【英文标题】:Database design for products with multiple features 【发布时间】:2017-03-14 12:42:08 【问题描述】:

假设您正在为本地价格表设计一个可搜索的价格数据库,并且遇到如下情况:

示例:

正在搜索产品“名片”。所以“名片”是主要产品。但是当您查看它时,您会希望看到不同种类的克,例如 125 克和 250 克。以及折叠和非折叠等不同类型的功能。 125 克和 250 克的价格不同。而且它们的数量也不同。

所以我正在构建一个网络应用程序,同事可以在其中登录、添加产品和搜索产品。但我想尽可能简单地构建它。

添加产品所需的信息:

Product_name、Product_description、Product_category(到目前为止,我得到了这个工作,这些是主要信息,没有改变)。

很抱歉,我什至无法正确解释它,所以我将我的想法勾勒出来,如下所示:

This is what information i need and how I want to display it when searched (below the basic main information

对于这个 web 应用程序,我使用 Laravel >5.0 和 mysql DB

【问题讨论】:

您能否展示您为实现您想要的目标而想出的/尝试过的东西。 你不能只有一个列gram、一个列price和一个列quality吗?您可以将其作为product_category 是的,你可以,看看我的回答。但是,您可以正确打印它并保持数据相同,否则某些字段将为空。 @DylanWijnen 我还没有对那部分进行编码,因为我必须先“梦想”它:) 但在我尝试了你的解决方案后我会展示一些。谢谢顺便说一句! 【参考方案1】:

从这个数据模型中,您将能够提取您需要的所有数据。

- Product
    - Product_Type  : "000102", //Main Article Nr
    - Product_Nr    : "001", //Added Article Nr
    - Product_Name  : "Businesscard Folded",

    - Product_Type  : "000102",
    - Product_Nr    : "002",
    - Product_Name  : "Businesscard Non-Folded",


- Product_Property
    - Product_Nr*, //Relation to Product.
    - Property_Name : "100gr",
    - Quantity : 100, //You could also make this a relation and notworry about invalid quantities same goes for Property_Names
    - Cost: 10

【讨论】:

我会试试这个,我想它会工作的!谢谢您的回答。我会让它知道它是否对我有用:) 我认为“Businesscard Non-Folder”的 Product_Nr 应该与“Businesscard Folded”不同? 您能帮我设置表格吗?因为我实在想不通。一直在询问产品属性。而且我不明白如何获得产品文章NR?不同的形式? @A.C.E 请对您的问题进行编辑或打开另一个问题。寻求帮助并解释您需要帮助的地方。你都尝试了些什么。你说你正在使用 laravel 你是如何设置你的模型等的。

以上是关于具有多种功能的产品的数据库设计的主要内容,如果未能解决你的问题,请参考以下文章

可以包含具有多种不同拼写的单词的字典的表格设计

数据库设计 - 具有属性的多类别产品

模块化数据中心介绍

设计模式—工厂方法模式

模块化数据中心及其优势介绍

数栈产品经理分享:干货解读数据中台产品「模块化」设计思路