我有两个桌子。 “产品”和“折扣”。 然后,我为多对多关系创建一个联接表'discount_product'。到目前为止一切顺利。
现在,如果我想让折扣属于所有产品,那么我必须在联接表中插入我所拥有的所有产品。这意味着拥有10000+种产品,我必须为联接表插入10000+行以获得一种折扣吗?那只是一个折扣!如果我有1000怎么办?
当我在“折扣”表中只有一列“ product_ids”和类似“ 1 | 2 | 4 | 7 | 23 |”的内容时,这迫使我回到旧的(错误的)方式。 ”(或“ *”表示“属于所有”),然后制作一小段PHP代码以检查折扣是否属于全部或某些产品。我知道这样做是错误的方式。那么有没有更好的方法来正确地做到这一点?
结构:
**products**
id
description
price
**discounts**
id
procent
value
**discount_product**
product_id
discount_id
答案 0 :(得分:0)
我建议尝试更改一些业务逻辑。
discount_product
中,则表示该折扣适用于所有产品。discount_product
中,则意味着它仅适用于特定产品。这只是我的想法。
我认为有时由于优化而对数据库进行非规范化很有用,我会按照您在product_ids
字段中建议的那样进行操作。