【问题标题】:Multi category database schema with repeated data具有重复数据的多类别数据库架构
【发布时间】:2013-11-12 10:55:32
【问题描述】:

这是所涉及的数据,

这是我想出的架构

范围

身份证 名称(例如:地区...)

类别

身份证, 名称(例如:资源), scope_id

子类别

身份证, 名称(例如:合法的、赞助的……), category_id

问题是,如您所见,由于同一类别出现在所有范围下,相同的子类别出现在所有类别下,因此存在大量重复数据。当然,案例中会有一些独特的价值,但它们很少。此外,即使类别/子类别的名称相同,它们也会根据其父范围/类别持有对不同数据集的引用。这将用于分离内容并生成菜单以浏览这些内容。我想知道的是,这是否是解决此问题的正确方法,或者任何人都可以建议我有更好的方法/模式?

【问题讨论】:

    标签: mysql database-schema


    【解决方案1】:

    根据您提供的有限信息,我会这样做:

    categories
        id                  unsigned int(P)
        name                varchar(15)
    
    +----+-----------+
    | id | name      |
    +----+-----------+
    |  1 | Assets    |
    |  2 | Resources |
    | .. | ......... |
    +----+-----------+
    
    categories_subcategories
        id                  unsigned int(P)
        category_id         unsigned int(F categories.id)
        subcategory_id      unsigned int(F subcategories.id)
    
    +----+-------------+----------------+
    | id | category_id | subcategory_id |
    +----+-------------+----------------+
    |  1 |           1 |              4 |
    |  2 |           1 |              1 |
    | .. | ........... | .............. |
    +----+-------------+----------------+
    
    levels
        id                  unsigned int(P)
        name                varchar(15)
    
    +----+----------+
    | id | name     |
    +----+----------+
    |  1 | National |
    |  2 | Regional |
    |  3 | Zonal    |
    | .. | ........ |
    +----+----------+
    
    levels_categories
        id              unsigned int(P)
        level_id        unsigned int(F levels.id)
        category.id     unsigned int(F category.id)
    
    +----+----------+-------------+
    | id | level_id | category_id |
    +----+----------+-------------+
    |  1 |        1 |           1 |
    |  2 |        1 |           2 |
    | .. | ........ | ........... |
    +----+----------+-------------+
    
    subcategories
        id                  unsigned int(P)
        name                varchar(15)
    
    +----+-------------+
    | id | name        |
    +----+-------------+
    |  1 | Contributed |
    |  2 | Financial   |
    |  3 | Legal       |
    |  4 | Sponsored   |
    | .. | ........... |
    +----+-------------+
    

    【讨论】:

    • 是的,正是我想要的。谢谢。
    猜你喜欢
    • 2015-11-07
    • 1970-01-01
    • 2013-06-06
    • 1970-01-01
    • 1970-01-01
    • 2021-02-02
    • 2014-02-10
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多