[ Поиск ] - [ Пользователи ] - [ Календарь ]
Полная Версия: MY_SQL -> связи таблиц!!
nickROMAnt
есле ви знаете очень хорошо про связи между таблицами прошу вашей помощи bc.gif

нужно создать связь таблицы MAIN(ключовое поле ID) с таблицами A,B,C тиким образом, чтобы любая взятая айдишка с табилицы MAIN была найдена хотябы в одной из таблиц A,B,C. Другими словами чтобы MY_SQL не допускала ситуации занесения в таблицу MAIN в поле ID значения которого нету ни в одной из таблиц A,B,C по соответствующим полям.



Спустя 10 часов, 27 минут, 36 секунд (31.05.2007 - 09:43) Ghost написал(а):
только через тригеры

Спустя 2 часа, 4 минуты, 15 секунд (31.05.2007 - 11:48) AlexBB написал(а):
Цитата(Ghost @ 31.5.2007, 10:43) [snapback]21712[/snapback]
только через тригеры


Причем тут тригеры? Обычный констрейнт. Поддерживается начиная по моему с версии 4.1. Тока внимание! Таблицы должны быть INNODB, а не MyISAM, который обычно по умолчанию.

Пример создания:

alter table table1 add constraint fk_table1 foreign key (Id) references table2 (Id) on delete restrict on update restrict;

Чтоб руками все это не писать, советую проектировать базу в Power Designer, который по визуальной модели сгенерит SQL скрипт со всеми связями.

Спустя 1 час, 50 минут, 13 секунд (31.05.2007 - 13:38) Ghost написал(а):
насколько я понимаю, ему нужно связка не 1-много, а
Цитата
любая взятая айдишка с табилицы MAIN была найдена хотябы в одной из таблиц A,B,C.

и при этом условия не на таблицы а,б, с - а на основную
это не foreing key

Спустя 11 минут, 8 секунд (31.05.2007 - 13:49) AlexBB написал(а):
Цитата(Ghost @ 31.5.2007, 14:38) [snapback]21731[/snapback]
и при этом условия не на таблицы а,б, с - а на основную
это не foreing key


Гм, да пожалуй ты прав ... невнимательно прочитал задачу.

Только в таком случае есть у меня подозрение, что база спроектирована неправильно т.к. уловие несколько иррациональное.

Спустя 10 часов, 21 минута, 57 секунд (1.06.2007 - 00:11) nickROMAnt написал(а):
Цитата
Таблицы должны быть INNODB, а не MyISAM, который обычно по умолчанию


кроме MyISAM я вижу только:

-Heap
-Berkeley DB
-Marge

ето потомушто версия пхп май админ 2.6.1 или майскюел 3.23.49?

Ви написали с версии 4.1 Это версия чего?? dumau.gif

Спустя 11 часов, 32 минуты, 31 секунда (1.06.2007 - 11:43) AlexBB написал(а):
Цитата(nickROMAnt @ 1.6.2007, 1:11) [snapback]21755[/snapback]
Ви написали с версии 4.1 Это версия чего?? dumau.gif


Разумеется MySQL smile.gif
Про трешку давно уже надо забыть ... уже настало время подумать о переходе на пятерку ...

Спустя 1 день, 10 часов, 5 минут, 45 секунд (2.06.2007 - 21:49) nickROMAnt написал(а):
Так как денверов не нашол с последними версиями PHP и MySql пришлось ставить все пооддельности:

Apatch 2.2.2
PHP 5.2.3
MySql 5.0.41
PhpMyAdmin 2.10.1

Пока обновился чуть кришу не сорвало hi.gif

Теперь и InnoDb есть, и связи работают, все позади!! я стчаслив biggrin.gif

Благодарен всем кто помогал.
Обявляю тему закрытой!


_____________
Быстрый ответ:

 Графические смайлики |  Показывать подпись
Здесь расположена полная версия этой страницы.
Invision Power Board © 2001-2025 Invision Power Services, Inc.