Я создаю таблицу, позволяющую пользователям веб-сайта стать друзьями. Я пытаюсь определить, какой дизайн таблицы лучше всего подходит для хранения и возвращения друзей пользователя. Цель состоит в том, чтобы иметь быстрые запросы и не использовать много места в БД.
У меня есть два варианта:
Создавать отдельные строки для каждой дружбы.
+----+-------------+-------------------+
| 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 для таких функций, как счет и др.
Какой метод, по вашему мнению, лучше?