我正在为食品制作数据库设计,我在决定如何在数据库中设计产品类型和类别时迷失了方向。
现在让我们想想现实生活中的例子。让我们说如果我们采取奶酪产品。我们只是说它是带有一些味道的熏制奶酪。然后我们可以假设它是乳制品,它看起来像这样: Dairy - >奶酪 - >熏 - >大蒜味。
我试图列出其中的一部分,从我的角度来看它变得非常复杂。
两类主要食物是:食物和饮料/饮料,但也许我应该从像Bakery,Dairy,Fruit&蔬菜等?因此,在乳制品中我可能会有食物和饮料,如奶酪和牛奶。如果我们现在只吃奶酪,我用google搜索,有66种不同类型的奶酪可能更多can be found here。
我知道一切都可以简单地添加到一个表中,但由于我有很多不同的类别和类型,并且它们彼此重复,我如何能够针对所有食品类别制定最佳解决方案?
我可以得出结论是我还不确定如何正确组织所有类别和类型,但是您可以提出任何表结构吗?
如果事情不够清楚,请告诉我,我会澄清。
答案 0 :(得分:0)
从我的角度来看,您正在寻找标签和类别的一些组合。对于您的案例而言可以足够灵活的系统可以实现为M:N关系的产品:标签和1:N的标签:标签。
这样您的奶酪示例可能会标记为:
Organic type -> Dairy -> Cheese
Cooked -> Smoked
Flavored -> Garlic flavor
如果您的应用程序允许在标签上进行全文搜索,则添加带标签的新产品应该很容易。另一方面,最终用户可以通过乳制品或奶酪进行过滤。
答案 1 :(得分:0)
您拥有的食品类别将在层次结构中更好地组织。作为关系数据库,您将根据组织产品的方式进行重叠。理想情况下,您希望不惜一切代价避免多对多。
也许,最好根据数据库的目的创建关系。例如,如果这是针对超市的,我会根据供应商及其销售的产品创建关系,并可能将它们与接收产品的部门联系起来。然后添加标签或标签,按照什么样的食物(乳制品,肉类,水果等)对产品进行分类 这将允许您拥有基于流程的更多功能系统,并且添加标签将很容易被人类搜索。
所以,我的建议是考虑如何使用它并适合您的过程并专注于设计(模式,关系)。然后关注用户,并添加另一个图层以便于使用(标签,标签)
这有意义吗?