-2

我是 Mysql 的新手,我有一个复杂的问题:我有一个名为“Shops”的表,该表中有一个 ShopID 列。记录如下所示: Shop_001 Shop_002...

每个“shopID”指的是一个具有此名称的新表,例如有一个名为 Shop_0001 的表。在此表中有“零件编号”列,表示该商店可用的零件。

我将特定的零件号发送到 sql server,我想检查“商店”表中的所有商店,并在“Shop_xxxx”表中返回具有该特定零件号的行。不幸的是,我不知道如何开始。任何人都可以帮我提供一些指导或任何东西吗?

4

1 回答 1

1

您正在寻找多对多的关系。所以你只需要3张桌子

1 表是商店列表 1 表是产品列表,1 表是哪些商店有哪些产品的列表。像这样

table1
    id|shops
    ------
    1  shop1
    2  shop2
    3  shop3


table2
    id|products
    ------
    1  prod1
    2  prod2
    3  prod3
    4  prod4
    5  prod5

table3
    id|shop_id|prod_id
    -------------------
    1   2        3
    2   2        1
    3   2        2
    4   1        3
    5   1        4
    6   1        5
    7   3        2

因此,每次将产品添加到商店时,都会在 table3 中添加一个条目。这将允许您按商店或产品进行查询,并且您只需要 3 个表。

谷歌查询多对多关系以了解如何获取 shop1 的产品列表或具有 product4 的商店列表等。

于 2013-10-14T23:32:27.073 回答