1

我有一个用 PHP 编写的网站,用户可以在其中上传图片、发送好友请求、发布消息。

该网站建立在 CodeIgniter 框架之上。

我想拥有所有这些事件的“日志”。例如,我想显示所有朋友的最新活动。像 facebook,X 喜欢 Y 图片或 Z 发布了一条新消息。

我的数据库结构类似于:

事件表:

ID | user_id | event_type | meta_field | date

我有更多的表格,如友谊、图像等。

meta_filed和,将event_type指定另一个表中的数据。例如,对于下一行

事件表:

1, 4, 3, 12, 2012-12-08

3 将指定事件是友谊请求,而 12 将是友谊表中的 ID 12,其中我有有关此友谊请求的所有详细信息。

问题是,这是设计数据库的好方法吗?例如,我如何对朋友的所有最新事件进行最佳排序,假设我的友谊表中填充了数据。您建议我使用哪些技术进行缓存或其他可以提高我的性能和代码质量的技术?

4

1 回答 1

1

这是非常好的方法。但是,当您的数据库变得更大时,您必须索引字段“meta_field”以提高性能。使用 phpMyAdmin 可以轻松地对该字段进行索引。

于 2012-12-08T13:48:59.250 回答