|
|
|
Юзеры - Друзья. Какая связь?
|
|||
|---|---|---|---|
|
#18+
Есть таблица users. И есть таблица friends, которая должна быть такого вида: +--------------------------+ | USER_ID | FRIEND_ID | +--------------------------+ | 1110001 | 1110002 | | 1110001 | 1110004 | | ........... | ........... | +--------------------------+ Т.е. получается слева перечисление пользователей, а справа их друзей. Так вот какая свзяь будет с основной таблицей юзеров? ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 01.05.2008, 16:36 |
|
||
|
Юзеры - Друзья. Какая связь?
|
|||
|---|---|---|---|
|
#18+
И вообще, может проще отдельную таблицу не создавать, а сделать доп.столбец в таблице users? ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 01.05.2008, 16:46 |
|
||
|
Юзеры - Друзья. Какая связь?
|
|||
|---|---|---|---|
|
#18+
Френды тоже из списка пользователей? Если да, то - еще одна таблица связей пользователей, таблица френдов не нужна. Поля в таблице связи: -- ID_USER_1 (FK на USERS) -- ID_USER_2 (FK на USERS) -- можно дополнительный признак (друг или враг например) И все ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 03.05.2008, 08:06 |
|
||
|
Юзеры - Друзья. Какая связь?
|
|||
|---|---|---|---|
|
#18+
Правильно ли я понял, что помимо таблицы users будет ещё обна таблица, гед столбцы ID_USER_1 и ID_USER_2, при этом получается связь один-ко-многим. верно? ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 03.05.2008, 17:09 |
|
||
|
Юзеры - Друзья. Какая связь?
|
|||
|---|---|---|---|
|
#18+
man.without.faceПравильно ли я понял, что помимо таблицы users будет ещё обна таблица, гед столбцы ID_USER_1 и ID_USER_2, при этом получается связь один-ко-многим. верно? не совсем... с помощью дополнительной таблицы у вас описывается связь многие-ко-многим ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 03.05.2008, 17:18 |
|
||
|
Юзеры - Друзья. Какая связь?
|
|||
|---|---|---|---|
|
#18+
В идеале у Вас должно быть 3 таблицы, чтобы разбить связь "много-ко-многим" ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 03.05.2008, 17:45 |
|
||
|
Юзеры - Друзья. Какая связь?
|
|||
|---|---|---|---|
|
#18+
Слишком простая структура. Непонятно как: * найти всех друзей 3-го уровня для данного юзера * сформировать цепочку(и) по которой связаны два юзера ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 03.05.2008, 17:51 |
|
||
|
Юзеры - Друзья. Какая связь?
|
|||
|---|---|---|---|
|
#18+
гмм...Непонятно как: * найти всех друзей 3-го уровня для данного юзера * сформировать цепочку(и) по которой связаны два юзера Вам непонятно, как это сделать одним запросом, или Вам непонятно, как это в принципе при подобной структуре можно сделать (фактически, Вы утверждаете, что это сделать нельзя)? ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 04.05.2008, 11:47 |
|
||
|
Юзеры - Друзья. Какая связь?
|
|||
|---|---|---|---|
|
#18+
Сергей ВаскецовВам непонятно, как это сделать одним запросом, или Вам непонятно, как это в принципе при подобной структуре можно сделать (фактически, Вы утверждаете, что это сделать нельзя)?Мне непонятно, как это сделать быстро и эффективно. Т.е. теоретически можно вырыть яму и чайной ложкой, но разумнее взять лопату. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 04.05.2008, 18:50 |
|
||
|
Юзеры - Друзья. Какая связь?
|
|||
|---|---|---|---|
|
#18+
гмм...Мне непонятно, как это сделать быстро и эффективно. Т.е. теоретически можно вырыть яму и чайной ложкой, но разумнее взять лопату. Эффективно в соответствии с каким критерием? Впрочем, свой вариант не хотели бы предложить? ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 06.05.2008, 13:56 |
|
||
|
Юзеры - Друзья. Какая связь?
|
|||
|---|---|---|---|
|
#18+
гмм...Мне непонятно, как это сделать быстро и эффективно. Т.е. теоретически можно вырыть яму и чайной ложкой, но разумнее взять лопату.Заведите для каждого юзера отдельную таблицу. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 06.05.2008, 14:56 |
|
||
|
Юзеры - Друзья. Какая связь?
|
|||
|---|---|---|---|
|
#18+
Программист-Любитель гмм...Мне непонятно, как это сделать быстро и эффективно. Т.е. теоретически можно вырыть яму и чайной ложкой, но разумнее взять лопату.Заведите для каждого юзера отдельную таблицу. С ума сошли? ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 06.05.2008, 18:53 |
|
||
|
Юзеры - Друзья. Какая связь?
|
|||
|---|---|---|---|
|
#18+
Программист-Любитель гмм...Мне непонятно, как это сделать быстро и эффективно. Т.е. теоретически можно вырыть яму и чайной ложкой, но разумнее взять лопату.Заведите для каждого юзера отдельную таблицу. На каждого юзера завести таблицу "врагофф"...))) почему нихто не предлагает? Табличка ссылаится сама на сибя... о как..) ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 07.05.2008, 17:18 |
|
||
|
Юзеры - Друзья. Какая связь?
|
|||
|---|---|---|---|
|
#18+
ну вот.... пошёл флуд и ничего полезного.... ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 07.05.2008, 20:05 |
|
||
|
Юзеры - Друзья. Какая связь?
|
|||
|---|---|---|---|
|
#18+
На самом деле интересная задача. Если я тебе друг, то ты мне тоже? или как? Связь то - двунаправленная. И, по идее должно быть на каждую пару друзей - по две записи)) ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 08.05.2008, 13:24 |
|
||
|
Юзеры - Друзья. Какая связь?
|
|||
|---|---|---|---|
|
#18+
gardenmanНа самом деле интересная задача. Если я тебе друг, то ты мне тоже? или как? Связь то - двунаправленная. Я так предполагаю необходимо подтверждение того, что этот человек является другом. gardenmanИ, по идее должно быть на каждую пару друзей - по две записи)) Дык получается таблица в которой грубоговоря в левом столбце тот кто добавил, а справо тот, кого добавили. И ниже строка обратная. Что-то вроде этого: +--------------------+ |USER_ID | FRIEND_ID| +--------------------+ | 1110001 | 1110002 | | 1110002 | 1110001 | +--------------------+ ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 08.05.2008, 14:09 |
|
||
|
Юзеры - Друзья. Какая связь?
|
|||
|---|---|---|---|
|
#18+
man.without.faceИ ниже строка обратная Это еще зачем? ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 08.05.2008, 14:12 |
|
||
|
Юзеры - Друзья. Какая связь?
|
|||
|---|---|---|---|
|
#18+
Дык для второго пользователя первый тоже будет являться другом. Ну или делать "пробег" по обоим столбцам. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 08.05.2008, 14:14 |
|
||
|
Юзеры - Друзья. Какая связь?
|
|||
|---|---|---|---|
|
#18+
man.without.faceДык для второго пользователя первый тоже будет являться другом 1. Это далеко не очевидно. Подумайте, что должно произойти в случае удаления дружбы. 2. Фиксировать надо связь , а не дружбу. Дружба в рамках топика - это не наличие связи, а ее интерпретирование. По логике, я могу дружить только с теми, кого сам считаю другом, могу с теми, кто считает другом меня, могу дружить с обеими категориями, могут быть и прочие варианты, например, все мои земляки. Хранить надо связь, причем так, чтобы было понятно, кто инициатор связи. 3. Можно делать предложение о "встречной" дружбе, в случае положительного решения на которое создавать "встречную" строку, которая при возможном удалении исходной строки останется. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 08.05.2008, 14:23 |
|
||
|
Юзеры - Друзья. Какая связь?
|
|||
|---|---|---|---|
|
#18+
Хммм.... Интересно. а вот как это организовать? ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 08.05.2008, 14:38 |
|
||
|
Юзеры - Друзья. Какая связь?
|
|||
|---|---|---|---|
|
#18+
man.without.faceХммм.... Интересно. а вот как это организовать? Если над опросто отображать всех, кто имеет отношение к дружбе - отображаете всех, на кого есть ссылка в списке друзей как в одну, так и в другую сторону. По идее, лучше отдельно отображать, типа "мои друзья", "со мной дружат", "друзья моих друзей",... ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 08.05.2008, 14:46 |
|
||
|
Юзеры - Друзья. Какая связь?
|
|||
|---|---|---|---|
|
#18+
ну и таким образом получится таблица с 4-мя столбцами... хотя не понимаю смысл "со мной дружат". Как могут со мной дружить, а я с этими людьми не дружу. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 08.05.2008, 15:06 |
|
||
|
Юзеры - Друзья. Какая связь?
|
|||
|---|---|---|---|
|
#18+
man.without.faceну и таким образом получится таблица с 4-мя столбцами Сама по себе связь требует 2 столбца, остальное зачем? man.without.faceхотя не понимаю смысл "со мной дружат". Как могут со мной дружить, а я с этими людьми не дружу Вы Путина знаете? А он Вас? ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 08.05.2008, 15:36 |
|
||
|
Юзеры - Друзья. Какая связь?
|
|||
|---|---|---|---|
|
#18+
Сергей Васкецов man.without.faceну и таким образом получится таблица с 4-мя столбцами Сама по себе связь требует 2 столбца, остальное зачем? USER_ID, FRIEND_ID, TYPE - 3 даже. :) Сергей Васкецов man.without.faceхотя не понимаю смысл "со мной дружат". Как могут со мной дружить, а я с этими людьми не дружу Вы Путина знаете? А он Вас? его знаю и он меня тоже. ;) Пусть даже он меня не знает, но я ведь с ним не дружу. Это уже несколько другое. Получается уже не связь дружбы, а речь о знакомых людях. Получаем: USER_ID, HUMAN_ID, TYPE - по сути тоже самое. TYPE - для указания типа знакоства: друг, знакомый, парень, дувушка, жена, муж и т.д... Вроде так. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 08.05.2008, 15:41 |
|
||
|
Юзеры - Друзья. Какая связь?
|
|||
|---|---|---|---|
|
#18+
man.without.faceПусть даже он меня не знает, но я ведь с ним не дружу. Это уже несколько другое. Получается уже не связь дружбы, а речь о знакомых людях Есть наличие связи (и ее тип, если хотите). Интерпретация ее, как я уже писал, дело десятое. Хотите - выделите для дружбы отдельный тип. Кстати, некоторые связи совершенно ортогональны. Например, муж может быть как другом, так и нет, не говоря уже про жен в гареме. Также подумайте над тем, что связь может иметь вполне конкретный срок действия, а также что отсутствие связи не эквивалентно наличию ее отрицания (елси нет "друг", это еще не "недруг"). ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 08.05.2008, 15:53 |
|
||
|
|

start [/forum/topic.php?fid=32&fpage=100&tid=1543740]: |
0ms |
get settings: |
9ms |
get forum list: |
14ms |
check forum access: |
3ms |
check topic access: |
3ms |
track hit: |
49ms |
get topic data: |
11ms |
get forum data: |
3ms |
get page messages: |
61ms |
get tp. blocked users: |
1ms |
| others: | 222ms |
| total: | 376ms |

| 0 / 0 |
