Database 为购物车应用程序设计数据库?
我从未从头设计过数据库/数据模型/模式,尤其是针对web应用程序。 在最近的一些工作面试中,我被要求为购物车应用程序“设计”一个数据库。现在,我正在开发一个移动购物应用程序(零售,使用phonegap),其后端需要存储和处理产品和订单信息。这个问题的规模如此之大,我不知道从哪里开始。我希望得到一些关于以下方面的建议:Database 为购物车应用程序设计数据库?,database,database-design,shopping-cart,Database,Database Design,Shopping Cart,我从未从头设计过数据库/数据模型/模式,尤其是针对web应用程序。 在最近的一些工作面试中,我被要求为购物车应用程序“设计”一个数据库。现在,我正在开发一个移动购物应用程序(零售,使用phonegap),其后端需要存储和处理产品和订单信息。这个问题的规模如此之大,我不知道从哪里开始。我希望得到一些关于以下方面的建议: 我应该如何处理这样的问题(购物车应用程序数据库)?我应该从哪里开始 是否有我应该避免的常见错误/陷阱 在设计这样的数据库时,我应该记住哪些优化/效率范例 我应该如何识别问题空间中的
简单的回答是我解决这个问题的方法。首先,有大量的开源或免费的基于web的购物车。这意味着你可以得到一个,建立数据库,然后好好看看他们做了什么 问问自己,比如,他们为什么这么做?为什么它好?会有什么负面影响?我会怎么做呢?为什么? 我会尝试购买一个数据库设计工具,允许您可视化数据库。(就像VisualStudio中的数据库设计器,或者我从MicroOlap中得到了一个处理pgsql数据库的设计器) 然后,您需要考虑在数据库中需要什么。客户将要做什么?购买产品!因此,您需要一个products表。不必走整条路,你就能看到重点。想象一下需要什么,然后基本上为它做一张桌子 如果表中的字段有多个选项,请创建另一个包含关系的表。因此,如果您有一个产品表和一个状态字段。您可以有多个状态。(例如缺货、数量有限、大项目、价格昂贵)与其硬编码这些字段,不如创建一个表,并允许用户将项目添加到表中。然后在产品表中添加一个字段status_id并将其链接到status表 多-多关系是需要了解的有用的东西。(我自己也没有做到这一点。)假设你有一个组件和产品表。产品可以由许多组件组成,组件可以分配到许多产品。创建一个中介表。类似于prodcomp的内容(在这里,您将有id、prod\u id、comp\u id、qtyneed等字段) 学会学习 在对数据库的工作方式有明确的了解之前,不要创建数据库。这样可以节省以后重新创建的时间
可能还有更多,但我希望我已经给了您一个良好的开端。数据库中可以有五个表: 类别此表存储有关您商店的产品类别和类别层次结构的信息。
此表的父字段存储父类别的ID 产品您商店的所有产品都存储在此表中。此表有一个外键categoryID,用于标识产品所属类别的ID 订单此表存储有关您商店的访客所下的所有订单的信息 订单购物车表与产品和订单表紧密相连;存储有关客户订单内容的信息
特别优惠表格包含产品列表,这些产品在主页上显示为特别优惠我并不提倡它,但发现它可以帮助您更好地将问题可视化,并包括/涵盖购物车应用程序的最高要求。即使我还没有构建任何购物数据库,所以这也是我感兴趣的一个问题。这是我开始学习设计技能的一个好机会+我很高兴它能帮助你。购物车本身的设计是什么?我还应该有
Cart
和cartdail
表吗?如何存储未注册用户的数据?@Shimmy shopping_cart和匿名用户在本例中不受管理,正如我所说,即使我在互联网上搜索此内容也是为了了解它,并帮助OP。如果您还有其他需要添加的内容,请随时改进。谢谢您的回复和关于规范化的信息。作为一个新手,我必须从我的角度澄清这一点——对于一个新手来说,很难理解像购物车或银行这样复杂领域中db设计的复杂性。这与理解DB设计的基础知识关系不大,而与理解域以及如何分解域以获得好的解决方案关系更大。上面的答案很好地解决了设计基础和领域知识这两个问题。常识只能带你走这么远。