【问题标题】:How can I build a SQL design, which provides Sub-Sub-Categories for products?如何构建 SQL 设计,为产品提供 Sub-Sub-Categories?
【发布时间】:2014-01-30 10:59:38
【问题描述】:

我正在尝试构建一个网上商店数据库,但当涉及到提供子子类别的 SQL 产品表的设计时,我遇到了问题。

例如,我有一个始终设置的主类别:

1.Cars

那么我就有了第一个子类

1.1 BMW
1.2 Mercedes

最后在某些情况下,我有一个更深的类别。

1.1.1 BMW M3
1.1.2 BMW M5

1.2.1 Mercedes 1
1.2.2 Mercedes 2

目前我有三个表:

tbl_Article
int ArticleId
char Description
decimal Price
int Category
int SubCategory

tbl_Category
int CategoryId
char Description
int hasSubCategories

tbl_SubCategory
int SubCategoryId
int Category
char Description

我该如何解决这个问题,以便在需要时可以有多个子类别?

非常感谢!

【问题讨论】:

    标签: sql categories article webshop


    【解决方案1】:

    您可以设计一个“类别表”,其本身带有一个外键:

    tbl_category

    int   id                                            --primary key
    int   fk_parentCategory REFERENCES tbl_category.id  --foreign key, can be null
    char  description
    ...
    

    tbl_product

    int   id         --primary key
    int   category   --foreign key, can not be null
    char  name
    ...
    

    fk_parentCategory 列是一个外键,指向它自己的表(但属于不同的类别)。也可以为空。

    如果为 null,则为顶级类别。如果不是,它是一个子类别。

    您只需要关心,一个类别永远不会指向它自己。因此id 列的值决不能与fk_parentCategory 列的值相同。

    【讨论】:

    • 谢谢,这对我有帮助:)
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2017-09-25
    • 2020-01-06
    相关资源
    最近更新 更多