作者usayankees27 (qwer123)
看板Soft_Job
标题Re: [请益] 商城的订单资料库设计
时间Tue Jun 22 15:18:14 2021
我并不是工程师,
目前也在自学中,
针对你的问题提供些答案与解决方向,
希望能帮助到原po,
版上的其他前辈们,
如果认为我的答案有错误或增进的空间,
再请各位提点与指教。
※ 引述《ntpuisbest (阿龙)》之铭言
: 想问问假使我有一个网路商城
: 使用者甲有可能会在A商店 买了 两个羽球拍 一颗篮球
: 使用者乙有可能在A商店 买了 三双球鞋
: 那麽我的订单资料库设计栏位
: 是应该要每个商品都要占据一个列会比较适合吗
: 订单编号 商品名称 店家名称 商品数量
: A1 羽球拍 A 2
: A1 篮球 A 1
: A2 球鞋 A 3
: 我的理解是使用者甲虽然买了两样东西,但是这是同一笔订单,所以订单编号要相同
: 我都假设成A1这样
: 可是这样设计的话,万一使用者甲一次买十样商品,
: 那我的资料库不就要有十列来存
: 想问这有更好的设计方式吗?
先决定你资料库要用 SQL 还 NoSQL,
你看起来像是要用 SQL,
那你的问题就是没有把资料表正规化,
依你文中的叙述简单画个 ERD,
关键字 正规化 了解下,
就能看懂与理解为什麽要这样设计,
另外你之後的资料操作,
Transaction 与 ACID 关键字可以看看。
https://i.imgur.com/BSE1Svt.jpg
: 另外想问另外一个问题是
: 如果是一般的注册使用者帐号密码的表单传到後端,我知道後端
: 可以用name来接收
: 但是如果是购物车
: 要怎麽样把使用者 打勾的 羽球拍 篮球
: 都用json传到後端
: 毕竟不同商店都有不同的产品清单
: 这方面我也不可能去把每一个商店的购物画面都刻一遍
不需要画面一个一个刻,
我以前用 Angular 可刻一个空白画面,
API 取资料後再把资料代入,
其他的前端框架应该也能做到。
从你的文中叙述,
不缺定你是否已有基本的基础知识,
建议你到
https://github.com/kamranahmedse/developer-roadmap
看看,相信对你会有帮助
----
Sent from
BePTT
--
※ 发信站: 批踢踢实业坊(ptt.cc), 来自: 114.45.176.95 (台湾)
※ 文章网址: https://webptt.com/cn.aspx?n=bbs/Soft_Job/M.1624346296.A.C05.html
※ 编辑: usayankees27 (114.45.176.95 台湾), 06/22/2021 15:22:32
※ 编辑: usayankees27 (114.45.176.95 台湾), 06/22/2021 15:39:09
1F:推 ntpuisbest: 谢谢认真回答!06/22 15:58
2F:推 taipoo: 推06/23 01:31
3F:推 MoonCode: 我想说 ACID 的特性跟表的设计在这个新手阶段不是很正06/24 13:09
4F:→ MoonCode: 相关,请问你可以讲讲如果满足或不满足 ACID 的情况下06/24 13:09
5F:→ MoonCode: 你的设计会有什麽差异吗06/24 13:09
ACID 的部分跟我画的 ERD 没什麽关系,我会提到主要是他的叙述让我觉得他可能才刚接触
※ 编辑: usayankees27 (114.44.116.66 台湾), 06/24/2021 13:57:40
6F:推 MoonCode: 所以我问你 了解或不了解 ACID,设计会有什麽差别06/24 15:51
7F:→ MoonCode: 我个人是觉得要别人去看一个东西要有它的意义06/24 15:51
8F:→ MoonCode: 我认为这阶段这不是一定要了解的知识06/24 15:53
M大的第一个疑问,
ACID 与 资料表设计关系,
是我文中叙述的问题,做了修正,
我个人觉得两者没直接关连,
正规化是以减少资料重复,
与避免资料更新异常为目的,
来决定资料如何储存,
ACID 则是为了资料操作前後资料的正确,
要求资料操作须符合的4个特性。
第二个疑问 ACID 原PO 现阶段是否要了解,
我的出发点是原PO 正在做作品,
做到商城资料操作时会有帮助,
M大若有其他想法或认为我的叙述有错误,
再请你回覆或另发篇文,感谢。
※ 编辑: usayankees27 (114.44.116.66 台湾), 06/24/2021 18:42:08
※ 编辑: usayankees27 (114.44.116.66 台湾), 06/24/2021 19:06:01