0

我正在为高中生开发一个社区网站。我正在尝试使用 PHP 实现一个相似和不同的系统。这是我得到的:

  • 在 MySQL中命名的表likes具有 3 列,即 app_id VARCHAR(32)、用户 VARCHAR(12)、休眠 VARCHAR(6)。

  • 唯一(app_id,用户)

当有人喜欢我网站上的某个页面时,会在likes表格中插入或更新一行,并使用dormant = false.

当一个人不喜欢一个页面时,当前行再次更新为dormant = true。这是删除行的替代方法,因为它对于快速处理喜欢和不喜欢的人来说有点密集。

我想知道,当有人不喜欢该页面时,我是否应该删除该行而不是更新它。

4

3 回答 3

1

不要删除该行。您可以收集的每一个数据都是一个有价值的数据点。我会说你也应该为每一个不同的地方创建一个新记录。

这些数据将有助于您将来了解用户行为。

有些人可能会时不时地喜欢它,然后又不喜欢它,然后又喜欢它,依此类推。

也许在未来你想看看为什么这么多喜欢一个项目的人突然不喜欢它然后又喜欢它。

所以我说尽可能多地收集数据。

于 2013-02-07T08:39:32.517 回答
0

看起来您没有记录用户喜欢或不喜欢页面的数量。在这种情况下,LIKES应该是一个表,并且应该有另一个名为 APPS(或您希望的任何名称)的表来存储页面:

**USER**
+---------+-------+-----+
| user_id |  name | ....|
+---------+-------+-----+
|    1    |  ...  | ... |
+---------+-------+-----+
|    2    |  ...  | ... |
+---------+-------+-----+

**APPS**
+---------+-------+-----+
| app_id  |  name | ....|
+---------+-------+-----+
|    1    |  ...  | ... |
+---------+-------+-----+
|    2    |  ...  | ... |
+---------+-------+-----+

**LIKES**
+---------+-------+----------+----------+
| like_id |user_id|  app_id  | is_liked |
+---------+-------+----------+----------+
|    1    |  1    |    2     |   1      |
+---------+-------+----------+----------+
|    2    |  1    |    3     |   0      |
+---------+-------+----------+----------+

如果用户点击喜欢( is_liked = 1)或不喜欢( is_liked = 0)页面,您可以在哪里切换

于 2013-02-07T08:57:44.927 回答
0

听起来像过早的优化。不要那样做。

设计你的应用程序,因为你想使用它/因为它应该工作。当它变得忙碌时,找出瓶颈并解决它们。

如果您想设计您的应用程序以实现数百万的可扩展性,请考虑完全使用不同的数据库引擎/编程平台。

于 2013-02-07T08:26:20.000 回答