我正在使用MS-Access数据库。
我正在尝试与两个表建立关系,Old Customer表有数据和新添加的优惠券表。
由于我的客户想要推出优惠券的新概念,客户可以使用优惠券而非现金。
我已在优惠券表中批量插入优惠券代码。
现在,我对我应该用这两个表创建什么样的关系感到困惑?
我必须考虑以下事情......
答案 0 :(得分:1)
我根本不会在客户表中包含“CouponID”(也不包括“现金”)。客户表为客户建模,优惠券表格为优惠券。 您需要另一个表来模拟事务:
[CustomerTransaction] ID 日期 顾客ID coupon_id
等等......每种类型的独立“事物”都应该由离散表建模。和“事物”应该由创建1:N关系的其他表相互关联。
答案 1 :(得分:0)
客户与优惠券的关系是可选的(即可空)一对一;你的数据模型看起来不错。
其他一些评论:
sale
而非customer
,因为如果同一客户再次回来,则会有一个新行(但名称相同)couponID
上创建一个忽略空值的唯一索引Cash
重命名为Amount
;金额为 “现金”或优惠券 - couponID
列会告诉您金额的类型 创建一个忽略空值的唯一索引:
CREATE UNIQUE INDEX idx1 ON customer (couponID) WITH IGNORE NULL;