php - 如何组织数据库中的表?

标签 php mysql codeigniter

我正在开始一个新的个人项目,但我遇到了一些我无法处理的事情。我将用一个例子向你解释。

在我的网站(带有 CodeIgniter 框架的 PHP)上,我有用户。每个用户都应该有自己的预定义项目列表(数百个项目,所有用户都可用)。当用户注册时,他可以看到该列表,但上面有“未赢得”的提示。随着时间的推移,他将赢得元素,并且在显示列表时,他收集的元素应该有“赢得”的字样。我认为我(显然)需要一个用户表和一个项目表。但我不知道如何链接表格以使每个用户拥有自己的个人项目列表,这取决于他自己而不是其他用户。

我认为我可以处理代码,但我真的不知道如何组织我的数据库。如果有人能给我一些关于这方面的提示,那就太棒了!

最佳答案

您需要三个表:usersitemsuser_itemsuser_items 表包含 user_iditem_id 列,因此您可以通过查询 user_items 表获取用户赢得的元素。

例如获取id为7的用户的元素:

SELECT items.id, items.name FROM items JOIN user_items ON items.id = user_items.item_id WHERE user_items.user_id = 7

关于php - 如何组织数据库中的表?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/20377075/

相关文章:

javascript - PHP 和 MySQL 的自动建议教程

javascript - CakePHP 3.x - 编辑 : Dates having empty fields upon submission despite them already existing

codeigniter - 尝试使用 Youtube Data API(V3) 将视频上传到 YouTube 时,YoutubeAPI 返回 401 Invalid Credentials 错误

performance - php-fpm slowlog 第一个字段是什么意思?

php - 使用 pcntl_fork() 提高 HTML 抓取效率

php - 在 PHP 的报告页面上格式化和显示电话号码

php - 为什么 Exception 不是 Throwable 的实例?

php - 使用 if 语句更新表

php - 如何使用codeigniter中的连接从两个表中获取值

codeigniter - 使用 codeigniter 插入数据库