首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >MySQL中逗号分隔列表的替代方案

MySQL中逗号分隔列表的替代方案
EN

Stack Overflow用户
提问于 2012-06-09 10:58:29
回答 1查看 540关注 0票数 1

我很难找出组织数据库的最佳方法。有三个表与手头的问题相关:user, good, and transaction。在理想的情况下,每个事务将包括与单个用户和单个商品的标识关系。但是,处理多种商品的最佳方式是什么呢?(在我的例子中,用户可能在一次交易中购买了数百种不同的商品。)我应该简单地创建一个逗号分隔的列表并将其放在TEXT字段中吗?这似乎违背了数据库设计的传统智慧……

EN

回答 1

Stack Overflow用户

回答已采纳

发布于 2012-06-09 12:03:42

除了已经列出的表和列之外,您还需要这些表和列: TRANSACTION_GOOD_MAPPING: Trnsctn_good_id (pk),transaction_id (fk到transaction表),good_id (fk到good表)

USER_TRANSACTION_MAPPING: user_trnsctn_id,user_id (fk到用户表),tramsaction_id (fk到transaction表)

以上将允许您拥有具有多个事务的用户和具有多个商品的事务。

下面是一个示例查询,用于获取给定用户的给定交易的商品列表:

select good_id,good_name,good_desc From user u,good g,transaction t,Transaction_good_mapping tgm,user_tramsaction_mapping utm,其中u.user_id=utm.user_id和utm.transaction_id=tgm.transaction_id以及g.good_id=tgm.good_id和u.user_id=‘user_tramsaction_mapping user’和tramsaction_id=some_tramsaction_id

注意:对于上面查询中的最后两行,请确保在查询中使用变量替换,以避免SQL注入。

票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/10958018

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档