gpt4 book ai didi

mysql - 替代 MySQL 中的逗号分隔列表

转载 作者:行者123 更新时间:2023-11-30 23:30:29 25 4
gpt4 key购买 nike

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

最佳答案

除了您列出的表格和列之外,您还需要这些表格和列:TRANSACTION_GOOD_MAPPING:trnsctn_good_id(pk),transaction_id(fk到事务表),good_id(fk到good表)

USER_TRANSACTION_MAPPING:user_trnsctn_id、user_id(fk到用户表)、tramsaction_id(fk到事务表)

以上将允许您拥有许多交易的用户和许多商品的交易。

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

选择 good_id, good_name, good_desc来自用户u,商品g,交易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='someuserid'并且 tramsaction_id=some_tramsaction_id

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

关于mysql - 替代 MySQL 中的逗号分隔列表,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/10958018/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com