2008-10-22 30 views
2

我必須向我的數據庫添加優惠券表。有三種類型的優惠券:百分比,金額或2爲1.僅從表格中選擇一個字段

到目前爲止,我已經拿出了一個包含這3個字段的優惠券表。如果有百分比值沒有設置爲空,那麼它就是這種優惠券。

我覺得這不是正確的做法。我應該創建一個CouponType表嗎?你會怎麼看?你會在哪裏存儲這些值?

任何幫助或提示表示讚賞!

感謝,

Teebot

回答

4

你是正確的,我認爲一個CouponType表是適合您的問題。

兩個表格:優惠券和優惠券類型。將CouponTypeId存儲在優惠券表中。

因此,例如,您將擁有一個名爲「50%off」的優惠券記錄,如果要引用CouponType記錄的折扣,並且從那裏您可以確定邏輯取得該商品費用的50%。

所以現在你可以創建無限優惠券,如果它是一個美元的優惠券類型,它將採取「金額」列並將其視爲美元數額。如果它是百分比折扣,它將把它作爲一個百分比,如果它是「x for 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> :)) 
+0

非常感謝mwilliams。我絕對會這樣。 謝謝大家的答案 – teebot 2008-10-22 14:12:59

1

我肯定會創建一個CouponType查找表。這樣你就可以避免所有的空值,並允許將來使用更多的優惠券類型。

券 coupon_id INT 名VARCHAR coupon_type_id INT < - 外鍵

CouponType coupon_type_id INT type_description VARCHAR ...

或者,我想你可以在你的優惠券有優惠券類型列表格CHAR(1)

2

將來您可能會有更多不同的優惠券類型。你也可以擁有不同的業務邏輯 - 你永遠不知道。在這種情況下做正確的事情總是有用的,所以是的,當然,創建一個優惠券類型字段和一個關聯的字典表來與它一起使用。

相關問題