MySQL 数据库设计问题 商品图片和商品关联问题

语言:javaSpring-mvc
数据库:MySQL

商品图片和商品关联问题

比如发布一个的商品,这个商品有很多图片,这些图片和商品怎么关联,数据库怎么设计

我的想法

goods 表、file 表、good_file 关联表

good_file 关联表里面有 idgoods_idfile_id

如果先添加了 goods 再来增加 file 那就没问题,可如果是在发布 goods 的时候,同时添加 file,这个时候因为 goods 还没提交,没有 goods_id,这时怎么处理? good_file 关联表里面的 goods_id 怎么获取。

是不是我这设计思路不对

我后来又想,添加 file 的时候,如果还不知道 goods_id 那么把 goods_id 设置为 0 等提交 goods 的时候,在更新 good_file 关联表中 goods_id0 的,可想来想去还是不对,如果这时同有人在发布产品,那就会出错,或者他上传了 file 的时候还没提交 goods 就关闭了浏览器,这时就出错了

想来想去,不知道怎么处理了,求救,一般商城产品发布,图片怎么关联商品

阅读 6.7k
4 个回答
新手上路,请多包涵

首先我认为没有必要设置中间的关联表。因为你这只是简单的表关联,filegoods是一对一,goodsfile是一对多,那么你就可以在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做关联。

你的意思是同一个商品可能会出现几个人同时上传?这安排任务的人也不合理了吧,面对这种情况我也不知道怎么处理好,另外既然是上传商品,主是商品,其它都是附加的,上传图片时必须让用户填写完商品的基本信息(必填部分),保证先把商品插入到数据库(这个保证应该能实现吧),再处理图片不可以么,不理解楼主为何会出现图片先到服务器端的

撰写回答
你尚未登录,登录后可以
  • 和开发者交流问题的细节
  • 关注并接收问题和回答的更新提醒
  • 参与内容的编辑和改进,让解决方法与时俱进
推荐问题