我目前正在从事一个基于eCommerce的小型项目,该项目允许用户向其他用户购买/销售二手书籍。我很难就如何对数据库建模做出设计决策。我的要求如下:
用户(应该能够同时买卖书籍)--用户可以出售一本书。-用户可以购买一本书。
临时用户-这是通过电子邮件注册用户。
订单-多个订单可以由一个用户进行。
Order_Details (我还没有创建它)-存储关于已订购的每个产品的信息
产品/书籍-许多产品属于一个类别
这是我第一次尝试这个设计;

任何意见都会有帮助。
问候
发布于 2014-03-18 17:30:09
是的,您可以使用一个表来跟踪已售出和未售出的物品。它类似于OLTP中的事务表,区别是事务一直处于打开状态,直到销售结束。从理论上讲,这是一个好主意,因为这将是3NF (假设上市和销售是1-1),但它的实践,它更常见的做法是从实际销售交易中去美化待售清单。有几个实际的原因,我可以详细说明,如果你需要证明这一决定。
如果决定将它们合并到一个表中,那么它将是一个sale_transactions表,它与用户有着多到多的关系。在该项目出售之前,buyer_user_id将为空,它还应包括product_id、listing_price、listing_date、sale_date和税收等内容。
如果您愿意分离这些表,那么您将有一个for_sale表和一个sales_history表(或者仅仅是sales或类似的)表。您可能希望将sales_history与orders表结合起来,这取决于您计划如何填充它们。
因此,买入/卖出的情形如下:
发布于 2014-03-18 16:10:01
帮你自己一个忙,得到一本数据模型模式书,不要重新发明轮子:)
https://dba.stackexchange.com/questions/61118
复制相似问题