gpt4 book ai didi

sql - 品类数据库设计

转载 作者:搜寻专家 更新时间:2023-10-30 20:17:45 26 4
gpt4 key购买 nike

我是数据库设计新手,需要一些帮助来解决问题。抱歉,如果这个问题已经得到解答,我一直在搜索但没有成功。

这是一个简化的场景:它是一个 ITEM 数据库,每个项目可以属于一、二、三...或 5 级类别结构(层次结构),示例是:

`Product     | Category1 | Category 2 | Category 3 | Category 4 | Category 5
ClassicLens Clothing Men Accesories Summer
Old Lens Clothing Men Accesories
Phone 2G Cell Phones Locked 2G
Pulp Fiction Movie DVD

假设我有三个表 ITEM、CATEGORY 和 CATEGORY_HIERARCHY,具有以下模式:

ITEM
-----------
Id_Item (PK),
Id_Category_Hierarchy (FK)
Name

CATEGORY_HIERARCHY
------------
Id_Category_Hierarchy (PK),
Id_Category1 (IX) (FK),
Id_Category2 (IX) (FK),
Id_Category3 (IX) (FK),
Id_Category4 (IX) (FK),
Id_Category5 (IX) (FK)

CATEGORY
------------
Id_Category (PK),
Name

如您所见,我使用唯一索引强制只能存在类别 1、类别 2、... 类别 5 的一种组合。

这种方法可行,但我敢打赌对于这种情况有更好的解决方案。你觉得怎么样?任何帮助/意见将不胜感激!

我无法将所有类型的类别分组到不同的表格中,因为这样会没完没了。

编辑:我忘了说数据库是 Access + VBA,递归解决方案行得通吗?我猜 SQL 查询会更复杂。

最佳答案

我可能会选择更像这样的东西:

Product
----------
ProductId
Name

Categories
----------
CategoryId
Name
ParentCategory --Recursive Key

ProductCategories
-----------------
ProductId
CategoryId

每当您发现自己一遍又一遍地添加诸如 columnName_{some number} 之类的内容时,可能是时候将那组列拆分到它自己的表中了。我几乎可以保证,在某个时候,您会收到从最多 5 个类别到更大类别的请求。使用上面的表结构将使您无需进行任何重大更改即可执行此操作。

关于sql - 品类数据库设计,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/28482428/

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