为购物车应用程序设计一个数据库



我从未从头开始设计过数据库/数据模型/模式,尤其是针对web应用程序。在最近的一些面试中,我被要求为一个购物车应用程序"设计"一个数据库。现在我正在开发一个移动购物应用程序(零售,使用phonegap),该应用程序的后端需要存储和处理产品和订单信息。这个问题的规模太大了,我不知道从哪里开始。我希望得到一些关于的建议

  1. 我应该如何处理这样的问题(购物车应用程序数据库)?我应该从哪里开始
  2. 有什么我应该避免的常见错误/陷阱吗
  3. 在设计这样的数据库时,我应该记住什么样的优化/效率模式
  4. 我应该如何识别问题空间中的实体(产品、订单等)?我应该如何推导它们之间的关系
  5. 当面试官问这样一个问题时,他到底在寻找什么?有什么我不该说的吗

我还应该澄清一下——

  1. 是的,我是一个傻瓜,我的动机是学习数据库设计,并为即将到来的面试做准备。我读过DBMS的书,书中详细描述了各个概念,但我不知道如何将这些东西放在一起并开始设计数据库
  2. 我看到了数据库设计的其他线程。作者已经倾向于掌握一些关于如何分解这个问题的知识。我想了解这样做的方法
  3. 非常感谢外部资源、评论、建议以及任何能让我走上正轨的链接。我希望这条线索能成为我自己和他人的一次学习经历

数据库中可以有五个表:

CATEGORY此表存储有关商店的产品类别和类别层次结构的信息
此表的父字段存储父类别的ID。

产品您商店的所有产品都存储在此表中。此表有一个外键categoryID,用于标识产品所属类别的ID。

ORDER此表存储有关您商店访问者的所有订单的信息。

ORDERED_SHOPING_CART表与PRODUCT和ORDER表紧密相连;存储有关客户订单内容的信息。

SPECIAL_OFFER表格包含产品列表,这些产品在主页上显示为特价

简单的回答就是我解决这个问题的方法。首先,有大量的开源或免费的、基于网络的购物车。这意味着你可以得到一个,建立数据库,然后好好看看他们做了什么。

问自己一些问题,比如,他们为什么这么做?为什么它很好?会有什么负面影响?我该怎么做呢?为什么?

我会尝试采购一个数据库设计工具,让你可视化数据库。(就像visual studio中的数据库设计师,或者我有一个MicroOlap的数据库设计师做pgsql数据库)

然后,您需要考虑数据库中需要什么。客户要做什么?购买产品!因此,您需要一个产品表。不用走完全程,你就能明白要点。想象一下需要什么,然后基本上为它制作一张表格

如果表中的某个字段有多个选项,则创建另一个具有关系的表。因此,如果您有一个产品表,并且有一个状态字段。你可以有多个状态。(例如缺货、数量有限、项目大、价格昂贵)与其对这些字段进行硬编码,不如制作一个表,并允许用户向表中添加项目。然后在产品表中添加字段status_id并将其链接到状态表

许多关系都是有用的知识。(我自己没有做到这一点。)假设你有一个组件和产品表。产品可以由许多组件组成,并且这些组件可以分配给许多产品。创建一个中介表。类似prodcomp的东西(在这个文件中,您会有id、prod_id、comp_id、qtyneed等字段)。

学会正确索引。

在对数据库的工作方式有了确切的了解之前,不要创建数据库。这样可以节省以后重新创建它的时间。

这可能还有更多,然而,我希望我给了你一个良好的开端。

相关内容

最新更新