多对多表还是单表?

问题描述 投票:0回答:1

我有一个疑问,这两种方法中哪一种更可行?

假设我为每个用户都有一个数据库,每个用户可能有很多店铺,所以我有一个表。CONFIG 纵横交错 SHOP_CONFIG (店家)和 POS_CONFIG 帅哥 一个店铺可以有多个POS机.

然后,我有表与 ITEMS 属于商店的柱子,如 ID_ITEMS DESC_ITEMS的项目,每个项目可能都是一样的。POS 一体 SHOP 或各 POS 可有可无 ITEMS. 因此,现在我必须看到所有的项目为每个 SHOP POS

所以我的疑问是。

我是否应该加一个 IDCONFIG 然后做第三个表,像 SHOP_ITEMSIDCONFIG 作为外键 ID_ITEMS 作为外键?

或者我可以直接添加列 SHOPPOSITEMS 桌?

(该表 CONFIG (反正是用于其他用途)

mysql sql
1个回答
1
投票

这个例子有点长,但你可以根据你的项目进行调整。


-- Shop owner (user) OWN exists.
--
owner {OWN}
   PK {OWN}
-- Owner OWN owns shop number SHP# (of that owner).
--
shop {OWN, SHP#}
  PK {OWN, SHP#}

FK {OWN} REFERENCES owner {OWN}
-- Point of sale number POS#,
-- of shop number SHP#, of owner OWN exists.
--
point_of_sale {OWN, SHP#, POS#}
           PK {OWN, SHP#, POS#}

FK {OWN, SHP#} REFERENCES shop {OWN, SHP#}
-- Item ITM exists.
--
item {ITM}
  PK {ITM}
-- Item ITM is available in shop
-- number SHP#, of owner OWN.
--
item_shop {ITM, OWN, SHP#}
       PK {ITM, OWN, SHP#}

FK1 {ITM} REFERENCES item {ITM}

FK2 {OWN, SHP#} REFERENCES shop {OWN, SHP#}
-- On DTE (date-time), item ITM was sold in
-- quantity QTY, thru point of sale number POS#,
-- of shop number SHP#, of owner OWN.
--
sales {OWN, SHP#, POS#, DTE, ITM, QTY}
   PK {OWN, SHP#, POS#, DTE, ITM}

      FK1 {ITM, OWN, SHP#} REFERENCES
item_shop {ITM, OWN, SHP#}

          FK2 {OWN, SHP#, POS#} REFERENCES
point_of_sale {OWN, SHP#, POS#}

注意,你可以在你的项目中调整它。

All attributes (columns) NOT NULL

PK = Primary Key
FK = Foreign Key
Using suffix # to save on screen space.
OK for SQL Server and Oracle, for others use _NO.
For example, rename SHP# to SHP_NO.
© www.soinside.com 2019 - 2024. All rights reserved.