Многие строки базы данных против одной строки значений, разделенных запятыми

Я создаю таблицу, позволяющую пользователям веб-сайта стать друзьями. Я пытаюсь определить, какой дизайн таблицы лучше всего подходит для хранения и возвращения друзей пользователя. Цель состоит в том, чтобы иметь быстрые запросы и не использовать много места в БД.

У меня есть два варианта:

Создавать отдельные строки для каждой дружбы.

+----+-------------+-------------------+
| 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 для таких функций, как счет и др.

Какой метод, по вашему мнению, лучше?

10
задан CyberJunkie 9 July 2011 в 00:27
поделиться