数据库表一行的一个属性可以有多个值么

Day-avatar

Day

2022-05-29T11:37:49+00:00

比如我的外卖订单(oId,userId,oItem,totalPrice)我一个订单点了炸鸡和可乐两个单品,我要怎么把这两个单品的食品号放到一行(一个订单的oItem)呢?然后totalPrice是两个价格之和?
编辑:是这两个单品号怎么放到oItem属性里面[s:ac:瞎]
KornFiRe-avatar

KornFiRe

加表 zsbd
DxSushi-avatar

DxSushi

一对多,外键,集合
srBassTurd-avatar

srBassTurd

json存储就可以,啥数据结构都可以存
Chizznok-avatar

Chizznok

订单为主表,另外弄一个物品、数量、价格 主表id的明细表
Hollow Mate-avatar

Hollow Mate

用户userId作为主键,然后订单单独表关联用户ID,订单号关联商品不就完事了
Kibishi-avatar

Kibishi

编辑编辑,回复错误
weedlethicc-avatar

weedlethicc

按约定好的格式储存就行了

比如说id用逗号分隔 按json数组 或者直接插两行数据用一个订单号关联俩产品名都行
Leaha 🤍-avatar

Leaha 🤍

订单,商品明细分开存,逻辑关联
Jmoney-avatar

Jmoney

只是为了存储那很简单,约定一个分隔符就行。如果要规范,还是要分主订单id和子订单id两个字段
Day-avatar

Day

编辑:是这两个单品号怎么放到oItem属性里面[s:ac:瞎]
Exile-avatar

Exile

Reply to [pid=615524136,32177961,1]Reply[/pid] Post by [uid=1300799]默默语[/uid] (2022-06-03 19:48)
[img]https://img.nga.178.com/attachments/mon_202206/03/-7Qjh5-iisyZfT3cSu0-p3.jpg[/img]
.resonance-avatar

.resonance

按标准关系型数据库应该分两个表,把oId, oItem的对应关系单独建表,二行。
TDistruttore-avatar

TDistruttore

这么做连关系型数据库的第一范式都不满足[s:ac:哭笑] 典型的错误设计,隐患多多
Turbosukmum-avatar

Turbosukmum

规范肯定是要再建个表,订单明细。
尽量不要用逗号分隔之类的,自己玩玩无所谓。
srBassTurd-avatar

srBassTurd

[quote][pid=615535758,32177961,1]Reply[/pid] Post by [uid=8546624]Zerman[/uid] (2022-06-03 20:53):

这么做连关系型数据库的第一范式都不满足[s:ac:哭笑] 典型的错误设计,隐患多多[/quote]不做范式很爽的,真按范式做各种外键你想删一条改一条数据爽死你,没外键的话主表删了数据就没了,至于关联数据有时间处理没时间就不管了,或者做计划任务清理也行
TusCacc-avatar

TusCacc

你要是不反向查询可以逗号隔开
7kHoursInFortnite-avatar

7kHoursInFortnite

了解下JSON数据,上面的图很形象了。简单粗暴又通用。