创造;徽章;对于我的网站,存储用户徽章的最佳方式是什么?使用PHP

创造;徽章;对于我的网站,存储用户徽章的最佳方式是什么?使用PHP,php,mysql,xml,save,Php,Mysql,Xml,Save,我正在给我的网站添加“徽章”,我想知道存储数据的最佳方式是什么。每个徽章都有一个存储在MySQL数据库中的ID。每个用户在MySQL数据库中都有自己的行,并且每个用户都有一个XML格式的“userdata”文件。因此,我可以将其保存在该XML文件中,或者在“users”行中创建一个新列,并将其保存为“0;5;6;4;”(徽章ID) 这是一个相当广泛的问题,我们真的没有办法确定哪种方法最适合您的特定站点配置和目标。任何一种方法都可能很好地发挥作用。或者,您可以添加一个新的mysql skinny/

我正在给我的网站添加“徽章”,我想知道存储数据的最佳方式是什么。每个徽章都有一个存储在MySQL数据库中的ID。每个用户在MySQL数据库中都有自己的行,并且每个用户都有一个XML格式的“userdata”文件。因此,我可以将其保存在该XML文件中,或者在“users”行中创建一个新列,并将其保存为“0;5;6;4;”(徽章ID)

这是一个相当广泛的问题,我们真的没有办法确定哪种方法最适合您的特定站点配置和目标。任何一种方法都可能很好地发挥作用。或者,您可以添加一个新的mysql skinny/relational表,名为badges_users,它将用户ID与已实现的badge ID关联起来(如果我正确理解您的目标,我建议您如何实现它)。

我对webiste做了类似的工作。我还没有找到一个决定性的答案。但是不要像0那样存储徽章;5.6.四,

取而代之的是一个名为user_-badges的表

Table user_badges
     user_id
     badge_id
还有一张放徽章的桌子

 Table badges
    badge_id
    badge_name
    ..
    etc

取决于任意数量的变量,如项目时间表、资源和流量。如果您想要合并一个nosql解决方案来存储在文件系统上,那么您将不可避免地获得更好的性能增益,因为您不会创建数据库连接来检索标记信息。但是,您可能已经建立了一个数据库连接,以便首先获取其他用户信息,因此您可能最终获得的收益微乎其微。SQL解决方案将更快地实现,并且除非您处理大量流量,否则不会出现明显的性能下降

我认为在这种情况下,最大的好处是为用户信息实现一个缓存层,这样就不需要为每个用户信息请求都访问持久存储


如果您选择数据库解决方案,您可能需要考虑为徽章创建单独的表,而向用户表添加另一列。用户和徽章之间的1:M关系将允许您在将来添加更多徽章,并且您可以扩展徽章,而不必干扰用户模式。

对于此类数据,我建议使用数据库,它将比读取和写入XML文件更快。

我没有否决投票,但请小心这句话。有几种nosql解决方案可用,它们比使用传统的RDBMS快得多。感谢您的评论,但如果他已经在查询呼叫用户数据,那么添加徽章不会有什么坏处,因此在这种情况下,添加徽章对于此类数据是有意义的。同意,我在回答中也说了同样的话。是的,您这样做了,我只是毫无理由地附和你的评论:)早些时候,关于这个问题的工作总结在