喜欢和不同于PHP中的系统

时间:2013-02-07 08:24:04

标签: php mysql

我正在为高中生开发一个社区网站。我正在尝试使用PHP实现类似且不同的系统。继承人我所拥有的:

  • MySQL中一个名为likes的表,其中包含3列,即app_id VARCHAR(32),用户VARCHAR(12),休眠VARCHAR(6)。

  • UNIQUE(APP_ID,用户)

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

如果某人不喜欢某个页面,则会再次使用dormant = true更新当前行。这是删除行的替代方法,因为它对于喜欢和不喜欢的快速工作来说有点密集。

我想知道,如果有人不喜欢该页面,我应该去删除行而不是更新它。

3 个答案:

答案 0 :(得分:1)

不要删除该行。您可以收集每个数据的宝贵数据点。 我会说你应该为每个人创建一个新的记录。

这些数据将来对您有用,可以找出用户行为。

有些人可能会喜欢smth,然后不像它,然后再喜欢它等等。

也许在未来你想知道为什么这么多喜欢一件物品的人不喜欢它然后又喜欢它。

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

答案 1 :(得分:0)

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

设计您的应用程序,因为它应该使用它/它应该工作。当它忙碌时,找出瓶颈并修复它们。

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

答案 2 :(得分: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)不同,您可以切换的位置