我正在创建一个包含许多不同类型优惠券的优惠券系统。我想构建它以便它可以扩展。我不确定存储不同类型优惠券的最佳方式,例如:
我正在使用mysql,最好存储为数组吗? JSON?任何其他想法或有类似问题的人都会分享他们如何做到这一点?
答案 0 :(得分:1)
除了我的头顶,你可以设计如下表格:
Table: Coupon_Summary
Columns: Coupon_ID(primary key), Coupon_Name
此表格包含有关优惠券的“顶级”数据。
Table: Coupon_Description
Columns: Coupon_ID(foreign key), Coupon_Description
此表格将包含优惠券的说明。
Table: Coupon_Value
Columns: Coupon_ID(foreign key), Coupon_Value, Coupon_Currancy
此表格将保留优惠券提供的折扣。 Coupon_Value可以是百分比或硬值(百分比将附加%符号),如果此值为零则优惠券提供完全折扣,或者该项目是免费的。这还包括基于折扣金额的货币,以便您可以在货币之间进行转换。
Table: Coupon_Target_Order
Columns: Coupon_ID(foreign key), Order_IDs
此表包含与优惠券效果的订单相关的数据。如果Order_ID为空或零,则优惠券对所有订单有效。否则,您可以为多个订单设置多个ID。
我希望这有一些帮助=)。
答案 1 :(得分:0)
使用SomeSQL,我宁愿不使用JSON,因为它几乎不可能有效地查询它。
简单来说,我的方法是,有一个优惠券类型表(列:id,名称,...)和另一个实际优惠券。
在优惠券表中,我会有一个“type_id”列交叉引用“couponTypes”表(或外键)。
这样,您可以随时添加新的优惠券类型,而不会使您对此点的数据失效。
查询“按类型划分的优惠券”是
的问题"SELECT 'id' FROM couponTypes WHERE 'name' = 'fixed sum'"; => $id
"SELECT * FROM coupons WHERE 'type_id' = $id"; => All fixed sum Coupons.
欢迎使用MySQL!
答案 2 :(得分:0)
我假设您有某种products
表,其中包含您可以销售的所有产品。您可以创建一个类似于:{/ p>的coupons
表
id discount discount_percentage
INT PK DECIMAL(10,2) DECIMAL(3,2)
1 5.00 NULL
2 NULL 10.00
然后你可以像这样创建一个链接表coupons_products
:
coupon_id required_product_id
INT FK INT FK
1 4773
1 993
因此,在此示例中,优惠券ID 1提供5.00美元的折扣,并且订单中需要两种产品:4773和993.优惠券ID 2提供10%的折扣,不需要任何产品。
答案 3 :(得分:0)
我会创建另一个表 - 例如tblCouponType,并使用唯一的数字和字符串填充它以获取我所拥有的类型的注释,并在新类型可用时添加它。然后在优惠券表中添加另一列,引用优惠券类型的数值。这有助于整个 - 数据库的“关系”部分:)