|
|
|
| Есть таблица `events`(ключ `event_id`) , нужно из нее какую либо запись связать с 1-N записями из этой же таблицы. Сделал таблицу связки `events_events` (например) и в ней 3 поля `id`, `event_id`, `event2_id` ... все ли верно, может есть лучше вариант? | |
|
|
|
|
|
|
|
для: fekss
(24.07.2009 в 09:10)
| | Мне кажется можно обойтись двумя полями
`event_id` и `event_id_to` с первичным ключём на оба поля. | |
|
|
|
|
|
|
|
для: Valick
(24.07.2009 в 10:52)
| | на оба-то зачем?
Индекса на второе обычно хватает.
Кстати, когда принимаешь решение делать составной ключ/индекс, возникает вопрос, в каком порядке задавать состав.
Так что Вы сказали либо слишком много, либо слишком мало :) | |
|
|
|
|
|
|
|
для: Trianon
(24.07.2009 в 10:55)
| | на оба-то зачем?
Индекса на второе обычно хватает.
Хм... вот тут Вы меня поставили в тупик
На оба за тем чтобы обеспечить уникальность строки и избавиться от обычного id
А вот на счёт порядка, тут я на обоих лопатках.
один ко многим (так я полагал) или многие к одному (теперь не знаю)
Если не трудно скажите пару слов про порядок. | |
|
|
|
|
|
|
|
для: 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) окажется бесполезен. | |
|
|
|
|
|
|
|
для: Trianon
(24.07.2009 в 11:17)
| | Пардон-те.
>>>Есть таблица `events`(ключ `event_id`)
Отсюда как-бы очевидно, что уникальность строк обеспечена первичным ключом event_id
Да но как теперь Вы сделаете отношение этого уникального ключа "ко многим"?
(вариант запихать 10 event_id в одно поле естественно не рассматривается) | |
|
|
|
|
|
|
|
для: Valick
(24.07.2009 в 11:26)
| | Типичнейший пример таблицы такого рода - дерево (adjacency_lists)
id, parent_id, name
как-то простого первичного ключа обычно хватает :)
уникальность пары обеспечена уникальностью ключа узла :) | |
|
|
|
|
|
|
|
для: Trianon
(24.07.2009 в 11:45)
| | уникальность пары обеспечена уникальностью ключа узла
это-то мне и никак непонятно.. думаю
гуглил про adjacency_lists но ничего не нашёл(( | |
|
|
|
|
|
 371.7 Кб |
|
|
для: Trianon
(24.07.2009 в 23:29)
| | спасибо
вот что у меня нагуглилось... (скопировал из вашего поста) | |
|
|
|
|
|
|
|
для: Valick
(25.07.2009 в 07:51)
| | ах баюс баюс
можно еще погуглить списки смежности, вложенные множества и материализованные пути.
Те же термины можно поискать и на этом форуме.
| |
|
|
|