php – 许多数据库行与一个逗号分隔的值行

我正在创建一个允许网站用户成为朋友的表格.我试图确定哪个是最好的表设计来存储和返回用户的朋友.目标是快速查询并且不会占用大量的数据库空间.

我有两个选择:

每个友谊都有单独的行.

+----+-------------+-------------------+
| ID | User_ID     | Friend_ID         |
+----+-------------+-------------------+
| 1  | 102         | 213               |
| 2  | 64          | 23                |
| 3  | 4           | 344               |
| 4  | 102         | 2                 |
| 5  | 102         | 90                |
| 6  | 64          | 88                |
+----+-------------+-------------------+

或将一行中的所有朋友作为CSV存储

+----+-------------+-------------------+
    | ID | User_ID     | Friend_ID         |
    +----+-------------+-------------------+
    | 1  | 102         | 213,44,34,67,8    |
    | 2  | 64          | 23,33,45,105      |
    +----+-------------+-------------------+

检索朋友时,我可以使用explode()创建一个数组,但删除用户会更棘手.

编辑:对于第二种方法,我将在PHP中分离数组中的每个id,以进行计数等功能.

你认为哪种方法更好?

第一种方法肯定更好.这是什么使关系数据库很好:)

它将允许您通过比第二种方法更具体的标准来搜索和分组.

假设你想写一个查询,以便用户可以看到他们是谁的朋友.第二种方法将需要您使用IN(),并且比使用JOINS要慢得多.

相关文章

统一支付是JSAPI/NATIVE/APP各种支付场景下生成支付订单,返...
统一支付是JSAPI/NATIVE/APP各种支付场景下生成支付订单,返...
前言 之前做了微信登录,所以总结一下微信授权登录并获取用户...
FastAdmin是我第一个接触的后台管理系统框架。FastAdmin是一...
之前公司需要一个内部的通讯软件,就叫我做一个。通讯软件嘛...
统一支付是JSAPI/NATIVE/APP各种支付场景下生成支付订单,返...