【发布时间】:2014-05-29 22:33:19
【问题描述】:
由于我是数据库架构的新手,因此需要一些最佳实践智慧。这是针对市场类型的应用程序。我想建议的主要问题是处理用户。
我想要实现的是买家和卖家账户共享登录/注册功能和一些特性,但卖家账户具有销售、接收付款等能力。买家可以发送请求,卖家可以完成它们。基本上,卖家可以做买家可以做的所有事情,但还可以查看和完成请求,然后进行销售。
我会选择简单的角色,除了在产品和付款信息方面卖家的关系比买家更复杂。卖家还需要能够公开上市,并拥有公开的个人资料。我不确定拥有 1 个包含两种用户类型的大表是否适合此操作。
我目前的想法是在基本用户表和卖方表(也可能是买方特定表)之间使用多态关联:
用户(买家)
- 姓名
- 电子邮件
- 加密密码
- (其他身份验证字段)
- 位置
- 职业
- meta_id
- 元类型
卖家
- 姓名
- 位置
- 职业
- 等
请求(属于买方和卖方)
- 类型
- 说明
- 完成
- buyer_id
- seller_id
产品(属于卖家)
- 说明
- category_id
- seller_id
如您所见,一个大问题是买家和卖家拥有重复数据这一事实。这样做的原因是因为当我显示卖家时,我不想执行多表查询,但也许这不是问题?另一种选择是先拥有用户基表,然后是买家和卖家表,但它们仍会包含重复信息。
接受所有可能性.. 最好的方法是什么?
【问题讨论】:
标签: sql ruby-on-rails database database-design