|
Тема
|
Връзка между две таблици
|
|
Автор |
vivendi (непознат
) |
Публикувано | 19.05.11 15:56 |
|
Здравейте,
Искам да Ви запитам как мога да направя връзка между две таблици в дадена база от данни.
Идеята е следната:
Имам създадена база от данни с две таблици.
Едната таблица има полета: ID | TIME
Втората таблица има полета: ID | Event_id
TIME е Timestamp
ID от втората таблица е Auto_Increment
Идеята е следната - Полето ID от първата таблица да се свърже с полето EVENT_ID от втората таблица така, че когато въведа информация във първата таблица (примерно ID 00001), да се изправа тази информация и във втората таблица в полето EVENT_ID.
Цялата база от данни се изпълнява на MySQL / phpmyadmin
Благодаря на всички
Редактирано от vivendi на 19.05.11 15:57.
| |
|
По принцип мисля че е по добре да забиеш таймстемпа във втората таблица. Ама понеже питаш - отговора (поне един от отговорите) е тригер. Все пак силно зависи от това с коя версия на MySQL си - старите май неподдържаха тригери.
И е добре да си направиш 2 тригера - на инсърт в таблица 1 да прави инсърт в таблица 2, на делете - да чисти.
Bеer? Mоre?
| |
Тема
|
Re: Връзка между две таблици
[re: bira_more]
|
|
Автор |
vivendi (непознат
) |
Публикувано | 19.05.11 16:50 |
|
Относно версийте са:
Server version: 5.5.8
Protocol version: 10
phpMyAdmin Version information: 3.3.9
_______________________________
И аз си мислих по този начин да се резлизира базата данни но по проект ми е възложено на две таблици да се нацепи...респективно така и направих. А тези тригери как се правят? Някаква по-подробна информация?
Но има и ново 20.... след като се резлизира базатаи да се напални с информация като пусна SQL заявка до парвата таблица (примерно SELECT 'id' FROM `one' WHERE 00001 " където 'one' е първата таблица ) да ми извежда информацията от парвата - timestamp - и информация от втората таблица.
Може ли да се реализира с PRIMARY и FOREIGN ключове?
Редактирано от vivendi на 19.05.11 16:51.
| |
Тема
|
Re: Връзка между две таблици
[re: vivendi]
|
|
Автор |
croesus (хлевоуст) |
Публикувано | 19.05.11 23:21 |
|
Правилно са ти казали да се цепят таблиците, вместо да си бута всичко в една, но таблици с по 2-3 полета са смешна работа. Аз в почти всяка таблица, която създавам бутам по един таймстамп накрая, просто за информация кога е било създадено нещо.
Ето как ще ги свържеш (не че е единствения начин):
SELECT * FROM tablica_1 LEFT JOIN tablica_2 ON (tablica_1.ID=tablica_2.Event_id) WHERE ......
Във WHERE можеш да слагаш условия към полетата и в двете таблици, но трябва да описваш кой му е "собственика". Т.е. вместо ID да ползваш tablica_1.ID примерно.
| |
|
Обърни внимание за външни ключове трябва да имаш "подходящата" таблица - innodb
Bеer? Mоre?
| |
|
|
|
|