Mysql虚拟商品表设计计,一个商品对应多个价格。

在 SegmentFault,学习技能、解决问题
每个月,我们帮助 1000 万的开发者解决各种各样的技术问题。并助力他们在技术能力、职业生涯、影响力上获得提升。
问题对人有帮助,内容完整,我也想知道答案
问题没有实际价值,缺少关键内容,没有改进余地
最近遇到了一个表和多个表关联的问题,
例如 : 现在有一个应用表 app_table,有很多个素材表 material_table1、material_table2... ,对每个素材表来说,一个素材可能有多个应用使用,一个应用也可以使用多个素材。每个素材表和应用表都是这种关系,而且每个素材表之间没有任何关联。
显然是多对多,但问题就是如果按照多对多建立表的话,每个素材表都要建立一个中间表。
我现在有个想法,就是在应用表中添加字段,每个素材都添加一个字段,字段中保存着这个 app 所拥有的素材的 id,按照逗号隔开。但是问题就是这样的话要查询两次,先通过应用表的字段进行筛选,然后再按照条件对查询出来的数据进行筛选。
不知道大家有没有更好的方案和想法,谢谢大家啦
描述的有点不清楚,是每个类别的素材(一个素材表)都做一个接口,只不过素材返回的时候是要根据应用来筛选的,而且存在一个应用使用多个素材(一个素材表中的多个素材),一个素材可能有多个应用使用。现在的状态是每个素材表都添加了一个应用字段来区分,但是这样要添加很多条目进去。所有我考虑要不要做一个应用表,然后每个素材做一个关联表。这样请求的时候可以先根据请求参数的应用名来查到应用表的数据,再根据关联去查到相关素材表中符合条件的数据。不知道有没有更好的方法。
答案对人有帮助,有参考价值
答案没帮助,是错误的答案,答非所问
首先你这个表结构设计的有点问题。多个素材,为什么要简历多个素材表?可以使用素材类型来区分吧。我不知道你为什么要给素材分表,如果安我猜的是因为素材类型不同,我觉得建表应该是这样的
app 应用表material 素材表material_type 素材类型app_material 素材应用关系表
答案对人有帮助,有参考价值
答案没帮助,是错误的答案,答非所问
感觉只需要一个关联表:
关联表应用ID 素材表ID 素材ID01
就可以确定某个应用使用了哪些素材
答案对人有帮助,有参考价值
答案没帮助,是错误的答案,答非所问
吐槽一句:哪里来的多对多啊.每个素材表的字段都不一样.应用表对某类型的素材表(素材表的元素)是多对多关系,但是应用表跟所有的素材表直接不是多对多关系,是包含跟不包含的关系好不.
答案对人有帮助,有参考价值
答案没帮助,是错误的答案,答非所问
首先,按照你的思路 你数据表将来很庞大难以维护,建议可以把素材的属性转成json或者序列化进行存储.
答案对人有帮助,有参考价值
答案没帮助,是错误的答案,答非所问
一对多的关联关系我们一般会使用中间表,一对一的才会增加一列来表示关系
答案对人有帮助,有参考价值
答案没帮助,是错误的答案,答非所问
REF_ID(序列)
答案对人有帮助,有参考价值
答案没帮助,是错误的答案,答非所问
app_id | material_table_name | material_table_id
关键字,多态关联
同步到新浪微博
分享到微博?
关闭理由:
删除理由:
忽略理由:
推广(招聘、广告、SEO 等)方面的内容
与已有问题重复(请编辑该提问指向已有相同问题)
答非所问,不符合答题要求
宜作评论而非答案
带有人身攻击、辱骂、仇恨等违反条款的内容
无法获得确切结果的问题
非开发直接相关的问题
非技术提问的讨论型问题
其他原因(请补充说明)
我要该,理由是:
在 SegmentFault,学习技能、解决问题
每个月,我们帮助 1000 万的开发者解决各种各样的技术问题。并助力他们在技术能力、职业生涯、影响力上获得提升。在 SegmentFault,学习技能、解决问题
每个月,我们帮助 1000 万的开发者解决各种各样的技术问题。并助力他们在技术能力、职业生涯、影响力上获得提升。
问题对人有帮助,内容完整,我也想知道答案
问题没有实际价值,缺少关键内容,没有改进余地
语言:java、 Spring-mvc
数据库:MySQL
商品图片和商品关联问题
比如发布一个的商品,这个商品有很多图片,这些图片和商品怎么关联,数据库怎么设计
goods 表、file 表、good_file 关联表
good_file 关联表里面有 id、goods_id、file_id
如果先添加了 goods 再来增加 file 那就没问题,可如果是在发布 goods 的时候,同时添加 file,这个时候因为 goods 还没提交,没有 goods_id,这时怎么处理? good_file 关联表里面的 goods_id 怎么获取。
是不是我这设计思路不对
我后来又想,添加 file 的时候,如果还不知道 goods_id 那么把 goods_id 设置为 0 等提交 goods 的时候,在更新 good_file 关联表中 goods_id 为 0 的,可想来想去还是不对,如果这时同有人在发布产品,那就会出错,或者他上传了 file 的时候还没提交 goods 就关闭了浏览器,这时就出错了
想来想去,不知道怎么处理了,求救,一般商城产品发布,图片怎么关联商品
答案对人有帮助,有参考价值
答案没帮助,是错误的答案,答非所问
首先我认为没有必要设置中间的关联表。因为你这只是简单的表关联,file对goods是一对一,goods对file是一对多,那么你就可以在file表中设置goods_id字段,在goods表里设置file_id字段(goods中也可以不设置,看你用了什么框架)你可以这样写:new_file-&goods_id=new_goods-&id
而goods中的id字段是not null auto_increment,这样保存的话goods表字段保存当然没有问题,file中的goods_id也不必担心值的问题。
不知道LZ用的是php吗,用的什么框架呢,我一般用Yii,它实现表的连接简直是分分钟。
答案对人有帮助,有参考价值
答案没帮助,是错误的答案,答非所问
1.goods 表、file 表、good_file 关联表 这三个这样设计是很常见的解决方法,没有问题。
2.主要是你在存储数据的时候 先后关系没有搞清楚。
3.存储顺序:先存file表,获取存储数据的fileIds。 在存goods表,获取goodsID。 最后在把
fileIds 和 goodsId 关联起来。
4.只要保证 关联表的数据是 在最后一步完成,就不会出现你所说的问题。
答案对人有帮助,有参考价值
答案没帮助,是错误的答案,答非所问
表的设计没有问题,在添加图片的时候使用异步添加,添加完图片就可以获取到图片的id了,这样就可以在保存商品的时候拿到商品id再和图片id做关联。
答案对人有帮助,有参考价值
答案没帮助,是错误的答案,答非所问
你的意思是同一个商品可能会出现几个人同时上传?这安排任务的人也不合理了吧,面对这种情况我也不知道怎么处理好,另外既然是上传商品,主是商品,其它都是附加的,上传图片时必须让用户填写完商品的基本信息(必填部分),保证先把商品插入到数据库(这个保证应该能实现吧),再处理图片不可以么,不理解楼主为何会出现图片先到服务器端的
同步到新浪微博
分享到微博?
关闭理由:
删除理由:
忽略理由:
推广(招聘、广告、SEO 等)方面的内容
与已有问题重复(请编辑该提问指向已有相同问题)
答非所问,不符合答题要求
宜作评论而非答案
带有人身攻击、辱骂、仇恨等违反条款的内容
无法获得确切结果的问题
非开发直接相关的问题
非技术提问的讨论型问题
其他原因(请补充说明)
我要该,理由是:
在 SegmentFault,学习技能、解决问题
每个月,我们帮助 1000 万的开发者解决各种各样的技术问题。并助力他们在技术能力、职业生涯、影响力上获得提升。mysql订单表如何设计?
订单表如何设计?
商品表和订单表 。
通过一个表来关联。
那删除了商品,相关联的订单表如何显示出这个已经删除的商品?
订单表需要冗余商品名、商品编号、价格等基本信息。
不能只保存一个商品主键,这个是订单表的基本原则,同时生成了订单的商品是不能删除的。
订单表中引用商品表主键,删除使用状态假删。
同时引入商品的状态,总之就是反范式设计,保证一次可以获得全部要的状态,不要进行多表jion。
订单:分为以下几种
订单凭证(接到客户的订单表),采购订单,销售订单,委外订单
我的该怎样设计
1:订单类型表:分订购,采购,销售,委外
订单详情表:
2:订单凭证表-订单凭证表详情
采购订单详情表
他们之间可以相互切换,就是订单凭证(产品产线做完以后),可以转换成销售订单
在记录订单凭证那张表里面加个状态是否完成如果完成了就可以打了标记然后记录到销售订单
不需要订单类型表,在订单表中加个订单类型的字段来记录就是了,如果防止误输入错误的订单类型,在这个字段上加约束就行了。
两个表就够了。
订单表用一个类型字段进行区分,需要转换时直接改订单类型。
订单详情表订单的明细记录。
相互切换也不要对同一个记录进行改标志,而是应该完成原单,新增新单
所有单据都用一套主从表:
一个主表,有单据类型字段
要看业务需求的。
如果一个订单按流程走下去,不同的步骤被称为不同的名称,改标志就够了。
最多加上几个时间字段,用来记录转换类型的时间点。
要是内容没变化,同样的明细复制几份没有意义,反而平白增加了数据量。
订单凭证,采购订单,销售订单,委外订单各建一个表存储(主表),必要时建各自对应的明细表.
各种订单的主表之间可通过各自的内码(InterID)关联.
买家购买商品后,产生一个订单,那么订单进行的每个步骤的数据如付款、付款时间,发货、发货时单,确认收货等信息应该如何设计,都放在订单表中吗?
每个步骤的数据如付款、付款时间,发货、发货时单,确认收货等信息应该如何设计,都放在订单表中吗?
订单表:订单编号、下单时间、提交人、订单类型、收货人信息、订单状态[待发货-已发货等]、订单审核人、订单金额、收货人ID[来至客户信息表]、
订单商品信息记录表:订单编号、商品ID、
其实你应该是有一个顺序生成不同的单据,并不是一个订单这么简单,
客户下好单可以叫一个基本订单、确认后,生成一个付款单、再后来就是发货单、最后收到钱了还有一个
收款单、这是最基本的几个单据!
一个订单需要包含以下信息:客户信息、商家信息、产品信息、订单自定义信息(订单状态、编号等)。数据库里面与之关联的有以下表:客户表、商家表、产品表、订单表
  所遇到的问题:
   一个订单不只包含一个产品,如果一个订单包含2个或者两个以上的产品时,如何解决?
  当前解决方案:
   另外建立一张关系表、一张历史记录表。将每个订单的产品信息存入关系表里面,在查询订单明细的时候,从关系表里读出该订单的产品信息。因为关系表的增长速度非常快,为了提高查询速度,将很久以前的数据移入历史记录表里面。
你可以将定单表中唯一标识定单的字段与产品定单表中唯一标识产品的字段,重新定义一个表,在此表中,将这两个字段作为联合主键就可以了   你上面的解决方案,当运行到一定程度时,历史记录表会很大.查询会很麻烦   你可以在定单表中,增加这两个字段,并将订单状态设置成标志位,在业务逻辑中进行判断,那么此订单中,只要客有想买的商品,即可以成交.   谢谢您的解答,我似乎明白您的意思了.但是需要查询订单详情的时候,是不是也从新定义的这个表里获取产品的ID ,然后再从产品表里获取资料呢? 这样是不是也算是定义了一个关系表? 如果有多个产品的话,怎么解决呢?这点我还是没有搞懂,请明示. 谢谢. 你用一个新表来定义新购的产品就可以了,完全可以使用定单信息这一个表就可以了.
首先,需要表产品、订单、库存、出库这4个表,根据你的需求来说。
产品记录产品名称、产品价格等等产品信息。
订单记录订单号、订单创建人等等
库存记录产品的ID、产品总量等等
出库记录产品的ID、订单的ID、产品数量、打单员等等
这样可以通过查找出库记录的时候,根据订单的ID可以看到这个订单一共有什么产品。
其实我觉得如果你这里不涉及一个出库的需求,单纯需要知道每个订单的产品,应该有更加简洁的设计方案。
存在这样一个关系:商品,客户,订单。
每个客户对应多个订单
每个订单对应多个商品
请问如何设计订单表?
还有,所有客户的订单都存在一张表中,还是为每个客户都创建一个订单表?
商品:ID,名称,价格,。。。。
客户:ID,名称,。。。。。
订单主表:流水号,订单日期,客户ID。。。(一个订单一条)
订单辅表:流水号,主表流水号,商品ID。。。(同一主表的流水下对应多个商品)
典型的购物车案例,用户在商城购买商品, 同一个商品可以购买多次。 最后形成一个订单。我的数据库是这样设计的:
因为一个订单可以包含很多商品条目, 而一个商品也可以由很多订单订购。所以2者是多对多的关系。另外还有需求,用户可以修改订单中商品的数量, 就是说,用户可以买10个或者更多个商品。
表设计如下
Order(订单表):
............ id, int
............ name,string
Product(商品表)
............ id, int
............ name,int
Ref_OP(订单商品关联表)
............ order_id, int
............ product_id, int
............ quantity, int /**一个订单同一个商品的数量 */
请注意,最后的关联表 中有个 quantity , 我想和各位探讨的是, 这样的设计是否合理?
很不合理。
订单表管理的订单,商品表管理的是库存。他们没有关系的。
需要有订单表,订单明细表和商品表,其中商品表和订单明细没有关联,记入明细时需要复制全部商品信息。
很不合理。
订单表管理的订单,商品表管理的是库存。他们没有关系的。
需要有订单表,订单明细表和商品表,其中商品表和订单明细没有关联,记入明细时需要复制全部商品信息。
拿京东网来举个例子:
如果没有关联,就是说,我在查看订单时,在订单里看到的商品信息都是订单详细表自已存储的吗?
那商品性能,描述等很多信息全存一份在订单里,太可怕了吧。
不知道我的理解是否正确:-)
为什么要这样设计?
拿京东网来举个例子:
如果没有关联,就是说,我在查看订单时,在订单里看到的商品信息都是订单详细表自已存储的吗?
那商品性能,描述等很多信息全存一份在订单里,太可怕了吧。
不知道我的理解是否正确:-)
为什么要这样设计?
考虑一下两份定单的情形,假定它们是在不同时间作成的,在这段时间里同种商品的价格单位或者描述都是可以变化的,而定单上则应记录下作成时的产品信息。因此,两份定单上对同种商品的记录可以是不同的,所以不能使用商品表里的信息。
Ref_OP(订单商品关联表)
这个名称取得不好,其实就是 LineItem(销售项/订单项)。
考虑一下两份定单的情形,假定它们是在不同时间作成的,在这段时间里同种商品的价格单位或者描述都是可以变化的,而定单上则应记录下作成时的产品信息。因此,两份定单上对同种商品的记录可以是不同的,所以不能使用商品表里的信息。
有道理。商品的价格、描述等信息是动态变化的。
商品表信息,可以分成可变,不变的(比如序列号)。
ProductSpec 中可以只放不变信息,并暂存动态数据(如最新价格)。
预期动态变化的信息,应该拷贝到 LineItem 中。
lodge && 其中商品表和订单明细没有关联,记入明细时需要复制全部商品信息。
二者可以(最好)有关联。
不变信息或辅助信息,可以不用复制,如产品说明、厂家等。
全部复制会造成信息冗余。
lodge && 其中商品表和订单明细没有关联,记入明细时需要复制全部商品信息。
二者可以(最好)有关联。
不变信息或辅助信息,可以不用复制,如产品说明、厂家等。
全部复制会造成信息冗余。
每份定单上的信息都是定单作成时被记录下来的,每份定单都是独立存在的,它们之间没有相互参照的关系,即便是同种商品的信息不一致,也不会破坏数据的一致性,因此这只是重复而并非冗余。
减少重复数据个人认为意义不大,这么作只能缩小数据库的大小,由于存在多对多的复杂关系容易影响检索效率。
事实上我认为还要考虑一下客户退货、修改订货时的数量,或者订单中某一用户的优惠(包括大客户的优惠、某节假日促销的优惠等信息),当然也可以不放在同一张表内,不过那就需要关联一些表了,如取舍要设计者根据实际情况自行把握!
这些都和 Use Case 有关。
脱离了需求来讨论表设计,等于白讨论。
事实上我认为还要考虑一下客户退货、修改订货时的数量,或者订单中某一用户的优惠(包括大客户的优惠、某节假日促销的优惠等信息),当然也可以不放在同一张表内,不过那就需要关联一些表了,如取舍要设计者根据实际情况自行把握!
这样考虑才全面啊
我有个问题,就是我现在有一张订单关联表,和一张订单主表,还有一张商品表。
订单关联表:
ID自动增长主键
orderId订单编号
productId商品编号
number数量
----------------------------
主表:orderId订单编号
用户名、电话、地址...
商品表:id,name...
怎么才能做到一张订单对应多个商品呢,我买东西的时候,一张单子可能会有很多商品的。插入数据库的时候如何实现,我现在脑子里感觉只能一张订单对应一个商品呀
买家购买商品后,产生一个订单,那么订单进行的每个步骤的数据如付款、付款时间,发货、发货时单,确认收货等信息应该如何设计,都放在订单表中吗?
看你其他表的关联,建议建立主子表,将付款金额等消息,放入子表中,将发货等信息,使用ID和其他表关联
每个步骤的数据如付款、付款时间,发货、发货时单,确认收货等信息应该如何设计,都放在订单表中吗?
订单表:订单编号、下单时间、提交人、订单类型、收货人信息、订单状态[待发货-已发货等]、订单审核人、订单金额、收货人ID[来至客户信息表]、
订单商品信息记录表:订单编号、商品ID、
其实你应该是有一个顺序生成不同的单据,并不是一个订单这么简单,
客户下好单可以叫一个基本订单、确认后,生成一个付款单、再后来就是发货单、最后收到钱了还有一个
收款单、这是最基本的几个单据!
请各位牛人指教,一个困扰我很久的订单表设计问题
旅游电商订单表设计问题问题描述:网站提供酒店,机票,旅游线路等等...多种产品的预定。用户可以同时预定多个产品,怎么把这么多不同类型的产品糅合到一个订单记录中也就是一个订单号。??????????????因为这些产品的每个订单属性都不一样。一个订单记录怎么去做这么多种订单的订单详情关联,,????????????例如:订单号是DK3453545,那这个订单号里用户是预定了机票,门票,酒店,以及旅游车的那这个订单记录中该怎么把这些订单详情关联到这个订单记录中,而且这些用户需要预定的产品是不固定的。??????????????我也想过把每个产品类型的订单记作为一个单独产品类型订单记录,那么就会存在很多个订单表,当系统需要查询当前用户的订单时,就需要把所有的类型订单表都遍历一遍。这样效率太慢。而且感觉很不好维护,?麻烦各位做过订单电商的牛人给点经验。
最满意答案
1、商品基础属性及库存(SKU)
2、订单以及订单详情(Order&OrderItems),OrderItems里面的record肯定与某个SKU关联上。同时你们的这种订单,一定包含个性化定制信息,一般都可以用一个字段将个性化信息保存起来(比如订酒店,可能包含日期、住几晚、单间还是标间、其他特殊要求等)
3、Shipment,订单只是与客户签订的一个意向合同,那么shipment就是你们如何去履约这个合同的载体。这种情况下,一类商品就可以设计成一种shipment,具体的履约方式、过程和状态,都可以放到这个模型里。
总结:订单是面向用户的模型,代表着一个销售或者销售意向合同。shipment是面向内部实际操作环节的模型,代表系统如何去跟踪和记录订单的每个不同类型的商品是如何履约的。当前位置: →
→ 设计了一个商品的数据表结构,请教合理
设计了一个商品的数据表结构,请教合理
& 作者:佚名 & 来源: 互联网 & 热度:
&收藏到→_→:
摘要: 设计了一个商品的数据表结构,请问合理吗?申明下,目前本人的程度属于:菜到不能菜的程度,并且 学习ing。想通过写一个例子来...
"设计了一个商品的数据表结构,请教合理"::
设计了一个商品的数据表结构,请问合理吗?申明下,目前本人的程度属于:菜到不能菜的程度,并且 学习ing。想通过写一个例子来进行实际锻炼下,后期将用的框架是ssh。所以请各位老鸟不吝赐教~!!谢谢!!!请看下图~如果图片太宽:请右键--新标签页中查看图片,谢谢~下面是各表的描述:_type 表:商品大类,比如:家具、家居、建材_type_info 表:具体类型,比如:沙发、桌子、椅子、床等。_goods 表:商品具体属性表,比如:名字、价格、品牌、封面、照片等(其实我一直想知道,产品另设一个封面属性有必要吗?)_goods_type 表:中间表,将产品和种类进行链接。_goods_att 表:属性大类表,比如:更多信息、包装信息_goods_att_info 表:具体属性,比如:设计师、颜色、产地、尺寸等,因为不同的产品包含的属性也不同,所以每个产品的属性都是不确定的。_goods_att_value 表:具体的属性值,比如:xxx设计师、红色、黄色、中国、20*20cm等相关属性值_click_list 表:点击排名表,我想知道每个产品被点击了多少次,并且前x位的排名情况。好了表介绍完了,让后想问下:1、请问上述表的结构设计合理吗?2、每个id名都是:表名+id 这样合理吗?因为我拍如果都写成i此文来自: 马开东博客
转载请注明出处 网址:
d的话将来传值会搞错。3、如果我还想设定每个产品的时限(就是到了时间就下架),那么是另外再加张表,还是直接写在_goods表中更好?因为我主要考虑到可能会调取所有已下架产品,然后可能要一次性删除这些数据,如果写在 _goods 表里面,每次都要判断下效率高还是在单独在另外一张表中判断效率高?4、如果我要人为控制某个产品在页面上显示的位置(包括已下架产品,重新上架),那么我该怎么办呢?就这四个问题,还请大家多多指点啊!!------解决方案--------------------把fk都去掉 一点用没有
------解决方案--------------------仅从er图上看没什么不合理的。引用2、每个id名都是:表名+id 这样合理吗?因为我拍如果都写成id的话将来传值会搞错。
------解决方案--------------------引用为什么不要外键呢?
------解决方案--------------------从图中看没有什么不合理的。关键与实际的应用要相结合的。 搜索此文相关文章:此文来自: 马开东博客
网址: 站长QQ
上一篇:没有了
设计了一个商品的数据表结构,请教合理_MySQL相关文章
MySQL_总排行榜
MySQL_最新
MySQL_月排行榜
MySQL_周排行榜
MySQL_日排行榜如何查询出订单的信息和订单中包含的商品详细信息(一个订单有多个商品)该怎么写SQL语句
[问题点数:50分]
本版专家分:0
CSDN今日推荐
本版专家分:50332
优秀大版主2015年8月优秀大版主2015年9月优秀大版主
2015年2月 Java大版内专家分月排行榜第二2014年3月 Java大版内专家分月排行榜第二
2014年9月 Java大版内专家分月排行榜第三2014年6月 Java大版内专家分月排行榜第三2014年2月 Java大版内专家分月排行榜第三2013年11月 Java大版内专家分月排行榜第三2013年10月 Java大版内专家分月排行榜第三
本版专家分:150
本版专家分:0
本版专家分:1201
匿名用户不能发表回复!
其他相关推荐

我要回帖

更多关于 商品数据库表设计 的文章

 

随机推荐