Как добавить функцию «друзья» в PHP? - PullRequest
0 голосов
/ 06 января 2010

Здравствуйте, переполнение стека Мне нужна помощь с этой проблемой. Хорошо, у меня есть простая файловая база данных в php, она записывает пользователей, хобби, любимые фильмы и все такое. Теперь я хочу добавить систему друзей, чтобы они могли иметь друзей и отправлять друг другу сообщения в php без SQL.

Ответы [ 2 ]

3 голосов
/ 06 января 2010

Подумайте о том, чтобы иметь другую таблицу (например, обычный файл?), В которой хранятся ссылки. «Марк» и «Джон» - это друзья, если в этой таблице есть строка (ff?), Которая связывает «Марк» и «Джон». Я бы рекомендовал использовать какой-то индекс (вы знаете, как первичный ключ).

Предположим, у вас есть таблица пользователей (или простой файл, что угодно, не имеет значения , что много), который содержит пользователей и некоторые данные, это выглядит так:

UID | Username | Hobbies
------------------------
1   | Mark     | Swimming, Sailing, Skiing
2   | John     | Biking, Paragliding
3   | Suzie    | Flying, Skiing

А у вас есть таблица других друзей (опять же, простой файл, что угодно ...):

Pair ID | A  | B
----------------
1       | 1  | 2
2       | 2  | 3

Мы закодировали в этой таблице друзей, что Марк и Джон - друзья, и что Джон и Сьюзи - друзья, но при отсутствии отношений 1 и 3 мы знаем, что Марк и Сьюзи не друзья (по крайней мере, согласно наши записи).

Обратите внимание, что если вы хотите получить всех друзей Джона, вы должны найти все строки в вашей таблице (или файле), которые имеют UID Джона (здесь = 2), в столбце A или столбце B.

3 голосов
/ 06 января 2010

Ну, я боюсь, что нет никакого волшебного ответа или волшебной функции PHP, которую вы можете вызвать, чтобы включить это поведение.

Если мы хотим помочь вам, нам действительно нужно еще немного для работы.

Если вы действительно по загадочным причинам решите придерживаться базы данных SQL - тогда я, вероятно, все равно «склонюсь» к SQL-подобному способу ее хранения.Предполагая, что вы в настоящее время сохраняете каждого пользователя в виде строки в файле, каждое поле которого разделено каким-либо символом - просто добавьте еще одно «поле» в файл, и оно будет содержать каждый «идентификатор» каждого пользователя, с которым он дружит.with (id, что бы вы ни использовали для этого, может быть именем до тех пор, пока оно уникально).

Что касается сообщений, вероятно, подойдет другой плоский файл, описывающий само сообщение, отправителя и получателя.идти.

Теперь реальный вопрос, почему так хочется избегать использования базы данных SQL?Если это из-за необходимости установки базы данных, попробуйте SQLite

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...