gpt4 book ai didi

php - 在 SQL 数据库中存储逗号分隔的列表 - 对吗?

转载 作者:行者123 更新时间:2023-11-29 03:50:04 26 4
gpt4 key购买 nike

我有一个包含 2 个表的 MySQL 数据库。第一个表只包含产品。第二个由用户组成。我正在使用 PHP 来处理信息。

在用户表中,我想定义允许用户查看哪些产品。

我最初认为我可以通过在 users 表中创建一个包含逗号分隔值列表的列来实现这一点,这些值将对应于允许用户查看的产品(基本上该用户可用的 product_id 列表。)

自从我决定采用这种方法后,我做了一些研究,我看到有人建议它不遵循数据库规范化的规则,并且可以快速创建冗余。

如果有更好的方法,我肯定会感谢任何能为我指明正确方向的人提供一些见解。

最佳答案

创建另一个表,将用户链接到产品,例如 users_to_products 并包含字段 user_idproduct_id

这将允许您查询数据库以查找用户可以看到哪些产品:

SELECT u.id, u.name, p.id, p.name FROM users AS u
LEFT JOIN users_to_products AS up ON u.id = up.user_id
LEFT JOIN products AS p ON p.id = up.product_id
WHERE u.id = ?

关于php - 在 SQL 数据库中存储逗号分隔的列表 - 对吗?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/24821412/

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