为购物车应用程序设计数据库? [关闭]

Posted

技术标签:

【中文标题】为购物车应用程序设计数据库? [关闭]【英文标题】:design a database for a shopping-cart application? [closed] 【发布时间】:2012-02-25 20:34:16 【问题描述】:

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

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

我还应该澄清一下 -

    是的,我是菜鸟,我的动机是学习数据库设计并为即将到来的工作面试做准备。我读过 DBMS 书籍,其中详细描述了各个概念,但我不知道如何将这些东西放在一起并开始设计数据库。 我见过其他有关数据库设计的主题。作者已经倾向于拥有一些关于如何分解问题的知识。我想了解这样做背后的方法。 非常感谢链接到外部资源、cmets、建议和任何能让我走上正轨的东西。我希望这个帖子可以作为我自己和其他人的学习经验。

【问题讨论】:

感谢您对规范化的回复和信息。作为一个新手,我必须从我的角度澄清这一点——对于一个新手来说,在购物车或银行这样复杂的领域中理解数据库设计的复杂性是非常困难的。这与理解数据库设计的基础知识关系不大,更多的是与理解领域以及如何分解它以得出一个好的解决方案有关。上面的答案很好地提供了简洁的解决方案来回答这两个问题 - 设计基础和领域知识。常识只能带你到此为止。 【参考方案1】:

一个简短的答案是我解决这个问题的方式。首先,有大量开源或免费的基于 Web 的购物车。这意味着您可以得到一个,设置数据库,然后好好看看他们做了什么。

问自己一些问题,例如,他们为什么这样做?为什么好?能有什么坏处?我会怎么做?为什么?

我会尝试购买一个数据库设计工具,让您可以可视化数据库。 (比如 Visual Studio 中的数据库设计师,或者我有一个来自 MicroOlap 的 pgsql 数据库)

然后你需要考虑你在数据库中需要什么。客户要做什么?购买产品!因此,您需要一个产品表。不用走整条路线,您就可以看到重点。想象一下需要什么,然后基本上为它制作一张桌子。

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

许多 - 许多关系都是有用的知识。 (我自己没有做到这一点。)说你有一个组件和产品表。产品可以由许多组件组成,并且组件可以分配给许多产品。创建一个中介表。像 prodcomp(在此您将拥有诸如 id、prod_id、comp_id、qtyneeded 之类的字段)。

学习index correctly。

在您对数据库的工作方式有一个明确的想法之前,请不要创建数据库。这样可以节省以后重新创建它的时间。

可能还有更多内容,但是,我希望我给了你一个好的开始。

【讨论】:

【参考方案2】:

数据库中可以有五个表:

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

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

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

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

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

【讨论】:

我不提倡它,但发现它可以帮助您更好地可视化您的问题,并包括/涵盖购物车应用程序的最大要求。即使我还没有构建任何购物数据库,所以这也是我感兴趣的问题 这是我开始提高设计技能的好时机。为您 +1 互联网。 太好了,我很高兴它帮助了你。万事如意 购物车本身的设计是什么?我还应该有CartCartDetail 表吗?如何为未注册用户存储数据? @Shimmy shopping_cart 和匿名用户在此示例中不受管理,因为我说即使我在互联网上搜索了它以了解它并帮助 OP,如果您有更多需要,请随时改进添加

以上是关于为购物车应用程序设计数据库? [关闭]的主要内容,如果未能解决你的问题,请参考以下文章

购物车 iphone 应用程序 [关闭]

项目的设计购物车系统

201621123018《java程序设计》第12周作业总结

201621123042《java程序设计》第十二次作业

如何在 Android 应用中处理购物车和付款? [关闭]

201621123028《Java程序设计》第14周学习总结