【发布时间】:2011-09-16 12:37:43
【问题描述】:
我已经使用 php 为自己编写了一个自定义论坛脚本。我决定不使用 phpbb 和其他工具,因为我想要 100% 的灵活性。
我遇到了一个问题:
如果帖子是新的/未读的,我如何向用户显示。
想到了两个解决方案:
1) Cookie 2) 数据库
我不想使用 cookie,因为它们可以被用户删除,而 Firefox 方面的东西意味着它们会被自动删除。无论哪种方式,我都不想使用 cookie。
数据库给我带来了问题,因为我似乎无法在脑海中对数据库结构进行排序!我能想到的第一个解决方案是:
- 当用户加载论坛时,检查他们上次加载论坛的时间
- 检查自上次查看论坛以来发布的所有帖子
- 在包含字段(user_id、post_id)的表中将这些值输入到数据库中。
- 当他们查看帖子时,该值会从数据库中删除
我认为这是一个巨大的数据库消耗问题。看起来效率太低了。我确信字段中有数组的方法,但我对数组并不是那么好。
谁能告诉我一个好的数据库设计以及与之相关的任何代码?这让我发疯,因为我想不出一个对服务器来说既好又高效的解决方案。
非常感谢您的帮助和帮助,
詹姆斯。
【问题讨论】:
-
只需在 post 表中添加一列可以是布尔值,如果已查看则设置为 true,如果尚未查看则设置为 false
-
您可以比较现有的板卡软件如何做到这一点。例如 PHPBB 或 MyBB 或其他各种代码可免费获得。然后选择适合您的需求。
-
我犹豫是否要发布这个建议,但我正在考虑和你一样做,然后我发现了香草论坛,它提供的内容非常精简,你可以在其中插入你需要的各种位和什么时候。就像 hakre 建议的那样,即使您不采用它,您也可以比检查他们的工作方式更糟糕。