我从未设计过数据库/数据模型/架构,特别是对于Web应用程序。 在最近的一些求职面试中,我被要求为购物车应用程序“设计”数据库。现在我正在开发一个移动购物应用程序(零售,使用phonegap),后端需要存储和处理产品和订单信息。这个问题的规模是如此巨大,我不知道从哪里开始。我希望得到一些建议 -
我还应该澄清 -
答案 0 :(得分:18)
数据库中可以有五个表:
CATEGORY 此表存储有关商店的产品类别和类别层次结构的信息。
此表的父字段存储父类别的ID。
PRODUCT 您商店的所有商品都存储在此表中。此表具有外键categoryID,用于标识产品所属类别的ID。
订购此表存储有关商店访客所有订单的信息。
ORDERED_SHOPPING_CART 表与PRODUCT和ORDER表紧密相连;存储有关客户订单内容的信息。
SPECIAL_OFFER 表包含产品列表,这些产品在主页上显示为特别优惠
答案 1 :(得分:12)
一个简短的答案是我将解决这个问题的方式。首先,有大量的开源或免费的基于Web的购物车。这意味着你可以获得一个,设置数据库,然后仔细看看他们做了什么。
问自己一些问题,为什么他们这样做了?它为什么好?有什么不利之处?我怎么会这样做?为什么呢?
我会尝试购买一个数据库设计工具,允许您可视化数据库。 (就像Visual Studio中的数据库设计师,或者我有一个来自MicroOlap的pgsql数据库)
然后你需要考虑数据库中你需要什么。客户要做什么?买产品!因此,您需要一个产品表。没有走完整条路线,你可以看到重点。想象一下需要什么,然后基本上为它做一个表。
如果表中的字段有多个选项,请创建另一个表中包含关系的表。因此,如果您有产品表并且您有一个状态字段。你可以拥有多个身份。 (例如缺货,数量有限,大件商品,价格昂贵)而不是硬编码这些字段,制作表格并允许用户向表格添加商品。然后在产品表中添加一个字段status_id并将其链接到状态表
许多关系是很有用的事情。 (我自己也不满意。)说你有一个组件和产品表。产品可以由许多组件组成,组件可以分配给许多产品。创建一个中介表。类似prodcomp的东西(在这里你会有像id,prod_id,comp_id,qtyneeded这样的字段)。
在您充分了解数据库的工作原理之前,请不要创建数据库。这节省了以后重新创建它的时间。
可能还有更多,但是,我希望我给你一个良好的开端。