Php 如何存储数据库中已经存储的数据?

Php 如何存储数据库中已经存储的数据?,php,mysql,Php,Mysql,我正在我的网站上创建一个收藏夹部分,用户只需将某些项目存储在收藏夹部分即可轻松访问。每个项目都已定义良好,并具有多个属性。所以我的问题是,假设我有10000个用户,我想实现一个“收藏夹”系统,什么是跟踪每个用户添加了哪些收藏夹的最好方法 我想通过以下方式实现这一点:将每个受欢迎的项目id链接到一个用户名,然后运行一个查询,查询具有特定用户名的用户是否登录,然后通过该用户名检索所有受欢迎的项目 我非常感谢大家能帮我想出一个好办法。我的目标是以便于以后检索和使用的方式存储数据,并尽量减少冗余信息。这

我正在我的网站上创建一个收藏夹部分,用户只需将某些项目存储在收藏夹部分即可轻松访问。每个项目都已定义良好,并具有多个属性。所以我的问题是,假设我有10000个用户,我想实现一个“收藏夹”系统,什么是跟踪每个用户添加了哪些收藏夹的最好方法

我想通过以下方式实现这一点:将每个受欢迎的项目id链接到一个用户名,然后运行一个查询,查询具有特定用户名的用户是否登录,然后通过该用户名检索所有受欢迎的项目


我非常感谢大家能帮我想出一个好办法。我的目标是以便于以后检索和使用的方式存储数据,并尽量减少冗余信息。

这非常简单,您需要创建一个包含3个字段的新表:

id
favoriteID
userID

每次用户添加新收藏夹时,它都会向该表中添加一条新记录,同时存储收藏夹的ID和用户的ID。没有冗余信息,通过实现
join
查询,可以轻松检索收藏夹或用户的详细信息。这就是关系数据库的用途。

非常简单,您需要创建一个包含3个字段的新表:

id
favoriteID
userID

每次用户添加新收藏夹时,它都会向该表中添加一条新记录,同时存储收藏夹的ID和用户的ID。没有冗余信息,通过实现
join
查询,可以轻松检索收藏夹或用户的详细信息。这就是关系数据库的用途。

在RDBMS中,可能会有一个具有用户id和文章id的多对多表。您不需要独立的id列:

创建表
收藏夹
(用户id int,文章id int)

这些当然会引用用户表和文章表。(或任何替代物品的物品。)

然后,如果要显示某个用户的收藏夹,则需要检索该用户的所有行。您可能还希望在列上创建一个组合的唯一索引,以防止重复

使用cassandra之类的工具,您可能会有更快的响应,您可以简单地根据用户id的键进行检索,并在一个简单的位置获取他们最喜欢的内容。但你要处理的是多重系统


我听说MySQL现在可以支持类似Cassandra的键值系统,这可能是您最好的选择。在RDBMS中,您可能有一个带有用户id和文章id的多对多表。您不需要独立的id列:

创建表
收藏夹
(用户id int,文章id int)

这些当然会引用用户表和文章表。(或任何替代物品的物品。)

然后,如果要显示某个用户的收藏夹,则需要检索该用户的所有行。您可能还希望在列上创建一个组合的唯一索引,以防止重复

使用cassandra之类的工具,您可能会有更快的响应,您可以简单地根据用户id的键进行检索,并在一个简单的位置获取他们最喜欢的内容。但你要处理的是多重系统


我听说MySQL现在可以支持一个类似Cassandra的键值系统,这可能是你最好的选择,但我还没有机会去研究它。

听起来是个不错的计划。多对多映射表:
CREATE table user\u favorites(id INT NOT NULL AUTO\u INCREMENT,user\u id INT NOT NULL,item\u id INT NOT NULL)
-要获取用户最喜爱的项目:
从uf.item\u id=i.id上的user\u favorites uf JOIN items i中选择i.*其中uf.user\u id=
听起来是个不错的计划。多对多映射表:
创建表user\u favorites(id INT非NULL自动递增,user\id INT非NULL,item\u id INT非NULL)
-要获取用户最喜爱的项目:
从uf.item\u id=i.id上的user\u favorites uf JOIN items i中选择i.*,其中uf.user\u id=
确实不需要id列。根据个人偏好,我希望所有表都有一个显式id,但是你可以在其他两列的基础上构建主键,而不是让ID列变得多余。它所做的只是占用磁盘空间。实际上不需要ID列。根据个人偏好,我希望我的所有表都有一个显式ID,但您可以从其他2列构建主键,而不是将ID列呈现为多余。无论哪种方式,这都是多余的。它所做的只是占用磁盘空间。