Форум: Форум PHPФорум ApacheФорум Регулярные ВыраженияФорум MySQLHTML+CSS+JavaScriptФорум FlashРазное
Новые темы: 0000000
MySQL на примерах. Авторы: Кузнецов М.В., Симдянов И.В. Программирование. Ступени успешной карьеры. Авторы: Кузнецов М.В., Симдянов И.В. PHP 5/6. В подлиннике. Авторы: Кузнецов М.В., Симдянов И.В. PHP Puzzles. Авторы: Кузнецов М.В., Симдянов И.В. C++. Мастер-класс в задачах и примерах. Авторы: Кузнецов М.В., Симдянов И.В.
ВСЕ НАШИ КНИГИ
Консультационный центр SoftTime

Форум MySQL

Выбрать другой форум

 

Здравствуйте, Посетитель!

вид форума:
Линейный форум Структурный форум

тема: Связать поля из одной таблицы
 
 автор: fekss   (24.07.2009 в 09:10)   письмо автору
 
 

Есть таблица `events`(ключ `event_id`) , нужно из нее какую либо запись связать с 1-N записями из этой же таблицы. Сделал таблицу связки `events_events` (например) и в ней 3 поля `id`, `event_id`, `event2_id` ... все ли верно, может есть лучше вариант?

  Ответить  
 
 автор: Valick   (24.07.2009 в 10:52)   письмо автору
 
   для: fekss   (24.07.2009 в 09:10)
 

Мне кажется можно обойтись двумя полями
`event_id` и `event_id_to` с первичным ключём на оба поля.

  Ответить  
 
 автор: Trianon   (24.07.2009 в 10:55)   письмо автору
 
   для: Valick   (24.07.2009 в 10:52)
 

на оба-то зачем?
Индекса на второе обычно хватает.

Кстати, когда принимаешь решение делать составной ключ/индекс, возникает вопрос, в каком порядке задавать состав.
Так что Вы сказали либо слишком много, либо слишком мало :)

  Ответить  
 
 автор: Valick   (24.07.2009 в 11:10)   письмо автору
 
   для: Trianon   (24.07.2009 в 10:55)
 

на оба-то зачем?
Индекса на второе обычно хватает.

Хм... вот тут Вы меня поставили в тупик
На оба за тем чтобы обеспечить уникальность строки и избавиться от обычного id
А вот на счёт порядка, тут я на обоих лопатках.
один ко многим (так я полагал) или многие к одному (теперь не знаю)
Если не трудно скажите пару слов про порядок.

  Ответить  
 
 автор: Trianon   (24.07.2009 в 11:17)   письмо автору
 
   для: Valick   (24.07.2009 в 11:10)
 

>на оба-то зачем?
>Индекса на второе обычно хватает.

>Хм... вот тут Вы меня поставили в тупик
>На оба за тем чтобы обеспечить уникальность строки и избавиться от обычного id

Пардон-те.
>>>Есть таблица `events`(ключ `event_id`)
Отсюда как-бы очевидно, что уникальность строк обеспечена первичным ключом event_id

>А вот на счёт порядка, тут я на обоих лопатках.
>один ко многим или многие к одному
>Если не трудно скажите пару слов про порядок.

А что тут сказать.
запросы
1. ORDER BY a
2. WHERE a > 1000
3. WHERE a = 50 ORDER BY b
4. WHERE a > 300 ORDER BY a, b
ключ (a,b) пойдет на ура.
ключ (b,a) окажется бесполезен.

  Ответить  
 
 автор: Valick   (24.07.2009 в 11:26)   письмо автору
 
   для: Trianon   (24.07.2009 в 11:17)
 

Пардон-те.
>>>Есть таблица `events`(ключ `event_id`)
Отсюда как-бы очевидно, что уникальность строк обеспечена первичным ключом event_id

Да но как теперь Вы сделаете отношение этого уникального ключа "ко многим"?
(вариант запихать 10 event_id в одно поле естественно не рассматривается)

  Ответить  
 
 автор: Trianon   (24.07.2009 в 11:45)   письмо автору
 
   для: Valick   (24.07.2009 в 11:26)
 

Типичнейший пример таблицы такого рода - дерево (adjacency_lists)
id, parent_id, name
как-то простого первичного ключа обычно хватает :)
уникальность пары обеспечена уникальностью ключа узла :)

  Ответить  
 
 автор: Valick   (24.07.2009 в 16:27)   письмо автору
 
   для: Trianon   (24.07.2009 в 11:45)
 

уникальность пары обеспечена уникальностью ключа узла
это-то мне и никак непонятно.. думаю
гуглил про adjacency_lists но ничего не нашёл((

  Ответить  
 
 автор: Trianon   (24.07.2009 в 23:29)   письмо автору
 
   для: Valick   (24.07.2009 в 16:27)
 

http://lmgtfy.com/?q=adjacency+list

  Ответить  
 
 автор: Valick   (25.07.2009 в 07:51)   письмо автору
371.7 Кб
 
   для: Trianon   (24.07.2009 в 23:29)
 

спасибо
вот что у меня нагуглилось... (скопировал из вашего поста)

  Ответить  
 
 автор: Trianon   (25.07.2009 в 11:05)   письмо автору
 
   для: Valick   (25.07.2009 в 07:51)
 

ах баюс баюс

можно еще погуглить списки смежности, вложенные множества и материализованные пути.

Те же термины можно поискать и на этом форуме.

  Ответить  
Rambler's Top100
вверх

Rambler's Top100 Яндекс.Метрика Яндекс цитирования