我正在尝试对我的组织的会员产品进行建模,以便在我们的业务数据库中接受和记录会员购买。我们希望有一天购物能在网上完成,并自动放入商业数据库。
问题是我们的会员制产品到处都是。我们有4种类型的组织可以加入我们的组织。每种组织类型都有单独的价目表。组织的属性决定了他们将从时间表中支付的价格(例如,如果他们的收入在200万美元到500万美元之间,他们将支付2000美元)。每个价格明细表中使用的属性是不同的。例如,企业根据年收入支付,而学校根据全日制相当于学生注册人数支付-我们通过让学校成员向我们提供全日制和非全日制学生注册人数来计算。更复杂的是,还有折扣计划(例如,早期续订的价格为12个月的15个月,资源不足的学校的折扣,等等)。然后,会员可以一次购买多个条款,我们有时允许人们购买按比例评级的部分条款(月是最小的单位)。
最重要的是,我现在应该使产品和交易数据模式足够通用,以便它可以作为所有购买的记录数据源-例如,除了会员购买之外,活动注册和计划注册。
救命!!有人告诉我这是标准的商业数据模式,但我在网上找到的每个样本数据模式都不能做到上面的事情,至少就我所知是这样的。有没有人看到过可以做这种事情的模式?如果你有,你能和我分享一下吗?
任何其他线索也将非常感谢。谢谢!
发布于 2009-07-30 06:47:31
似乎您需要将业务逻辑与数据设计分开。试着考虑适用于此问题的最简单的数据结构,并将成员关系的逻辑放在它们之上。
例如:
CREATE TABLE payment(
memeber_id INT,
payment INT,
expected_date DATE,
payment_date DATE);
CREATE TABLE credit(
memeber_id INT,
credit INT,
last_movement` INT,
next_movement INT,
last_movement DATE,);
CREATE TABLE member(
id INT,
membership_plan INT,
...)
例如,在此基础上,您可以非常容易地查询成员是否有信用、是否离开、是否支付了预期的费用等。业务规则是在软件中设置的,在此数据之上。对于每个成员计划,应该有不同的规则来管理它。
如果您计划以更具可配置性的方式构建业务逻辑,还可以再添加一个通用的实体-属性-值表来支持这些计划。最极端的是,每个成员甚至可以在这个表上拥有重写。
CREATE TABLE member_attributes(
membership_type INT,
attribute VARCHAR(30), --for example 'Monthly Pay', 'Membership duration'
value INT)
https://stackoverflow.com/questions/1203719
复制相似问题