我必须在我的数据库中添加优惠券表。有3种类型的优惠券:百分比,金额或2为1。
到目前为止,我已经提出了一个包含这3个字段的优惠券表。如果百分比值未设置为null,那么就是这种优惠券。
我觉得这不是正确的做法。我应该创建一个CouponType表,你会怎么看?你会在哪里储存这些价值?
任何帮助或提示都赞赏!
谢谢,
Teebot
答案 0 :(得分:4)
你是对的,我认为CouponType表适合你的问题。
两张桌子:优惠券和优惠券类型。将CouponTypeId存储在Coupons表中。
因此,举一个例子,你将有一张名为“50%off”的优惠券记录,如果会引用CouponType记录的百分比,那么你就可以确定将该项目的费用降低50%的逻辑。 / p>
所以现在你可以创建无限制的优惠券,如果它是一个美元金额的优惠券类型,它将采取“金额”列并将其视为美元金额。如果它是一个百分比,它将把它视为一个百分比,如果它是一个“x为1”的交易,它会将该值视为x。
- Table Coupons
- ID
- name
- coupon_type_id # (or whatever fits your style guidelines)
- amount # Example: 10.00 (treated as $10 off for amount type, treated as
# 10% for percent type or 10 for 1 with the final type)
- expiration_date
- Table CouponTypes
- ID
- type # (amount, percent, <whatever you decided to call the 2 for 1> :))
答案 1 :(得分:2)
将来您可能会有更多不同的优惠券类型。您可能还有与之相关的不同业务逻辑 - 您永远不会知道。在这种情况下做正确的事情总是有用的,所以是的,当然,创建一个优惠券类型字段和一个相关的字典表来配合它。
答案 2 :(得分:1)
我肯定会创建一个CouponType查找表。这样你就可以避免所有的NULL,并在将来允许更多的优惠券类型。
优惠券 coupon_id INT 名称VARCHAR coupon_type_id INT&lt; - 外键
CouponType coupon_type_id INT type_description VARCHAR ...
或者我想您可以在优惠券表CHAR(1)
中找到优惠券类型列