以特定方式在 MySQL 中存储值

Posted

技术标签:

【中文标题】以特定方式在 MySQL 中存储值【英文标题】:Store values in MySQL in a particular way 【发布时间】:2013-09-30 05:13:55 【问题描述】:

对不起标题,但我只是不知道这个分词是否有我可以使用的名称,请告诉我或用更好的名称编辑标题。

现在,问题是:我有两个 mysql 表,一个包含一个项目列表,每个项目都有一个唯一的 ID 和存储的标题。另一个表是用户列表。这两个表每天都获得更多的价值(更多的用户注册并添加了更多的项目)。我想保存每个用户已经看过的项目,我只需要知道他是否看过某个特定项目。那么,我应该如何存储这样的东西,最好的方法是什么?我只想在我的用户表上有一个列,其中包含一个包含逗号分隔的项目 ID 的字符串。但理想情况下,我需要一种可以让我做以下事情的方法:

获取检查项目的所有用户的列表。 获取某个用户检查的所有项目的列表。 获取用户未检查的所有项目的列表。 获取没有任何用户检查过的项目列表。 获取所有用户检查过的项目列表。

【问题讨论】:

【参考方案1】:

有一个中间表,两个表的外键。

例如user_items -> useritems_id (PK), user_id (FK), item_id (FK)

【讨论】:

【参考方案2】:

逗号分隔的字段是要搜索的 PITA。最好制作第三张表:(userid, itemid)

【讨论】:

以上是关于以特定方式在 MySQL 中存储值的主要内容,如果未能解决你的问题,请参考以下文章

MySQL - 存储货币符号的最佳方式?

MySQL:存储 MAC 地址的最佳方式?

如何从 php 数组中删除具有特定值的所有元素? (以尽可能最短的方式)[重复]

以编程方式登录 mysql

如何在 Mysql 中以 unix 毫秒为单位存储日期?

mysql语句概览