Гость
Целевая тема:
Создать новую тему:
Автор:
Форумы / MySQL [игнор отключен] [закрыт для гостей] / Связь между базами / 13 сообщений из 13, страница 1 из 1
02.12.2004, 14:01
    #32809628
ZRoman
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Связь между базами
Как делать связь между ячейками в таблицах?
...
Рейтинг: 0 / 0
02.12.2004, 14:23
    #32809693
Marat_L
Гость
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Связь между базами
Приведите пример желаемой связи.

Жизнь коротка - потерпи немного :)
...
Рейтинг: 0 / 0
02.12.2004, 14:40
    #32809753
ZRoman
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Связь между базами
Ну например:

1 таблица.

institut
id gruppi Gruppa
FIO idFIO
.... Predmet
.... ....
....
...
Рейтинг: 0 / 0
02.12.2004, 14:47
    #32809769
ZRoman
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Связь между базами
подскажите где можно скачать документацию по mysql.
...
Рейтинг: 0 / 0
02.12.2004, 14:51
    #32809787
Marat_L
Гость
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Связь между базами
Документация :
http://dev.mysql.com/doc/mysql/en/index.html


А насчет твоего примера - связь чего с чем?
Не догоняю
И таблица у тебя странная какая-то

Жизнь коротка - потерпи немного :)
...
Рейтинг: 0 / 0
03.12.2004, 15:45
    #32812160
ZRoman
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Связь между базами
да я не знал что она поедит после того как я ее отправлю, вот
таблица 1 (2 поля: 1.Группа 2.idPeople). таблица 2 ( N полей: 1.idPeople 2. fio ну и т.д.) связь по полям idPeople.
Спасибо !
...
Рейтинг: 0 / 0
03.12.2004, 16:08
    #32812261
Marat_L
Гость
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Связь между базами
Дык ёлы-палы - тебе нужны внешние ключи!!
Они есть в таблицах InnoDB

авторAn example:

CREATE TABLE parent(id INT NOT NULL,
PRIMARY KEY (id)) TYPE=INNODB;
CREATE TABLE child(id INT, parent_id INT,
INDEX par_ind (parent_id),
FOREIGN KEY (parent_id)
REFERENCES parent(id)
ON DELETE CASCADE) TYPE=INNODB;



Жизнь коротка - потерпи немного :)
...
Рейтинг: 0 / 0
06.12.2004, 13:46
    #32814400
чсмч
Гость
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Связь между базами
авторAn example:

CREATE TABLE parent(id INT NOT NULL,
PRIMARY KEY (id)) TYPE=INNODB;
CREATE TABLE child(id INT, parent_id INT,
INDEX par_ind (parent_id),
FOREIGN KEY (parent_id)
REFERENCES parent(id)
ON DELETE CASCADE) TYPE=INNODB;


навреное я чего-то не понимаю, но если:

INSERT INTO parent VALUES (1);

то child не изменится.
...
Рейтинг: 0 / 0
06.12.2004, 14:42
    #32814574
Marat_L
Гость
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Связь между базами
чсмч навреное я чего-то не понимаю, но если:

INSERT INTO parent VALUES (1);

то child не изменится.

1) Что именно вызывает сомнения/вопросы?
2)"не изменится" - это вопрос? утверждение? возражение?

Жизнь коротка - потерпи немного :)
...
Рейтинг: 0 / 0
06.12.2004, 15:01
    #32814615
чсчс
Гость
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Связь между базами
Marat_L чсмч навреное я чего-то не понимаю, но если:

INSERT INTO parent VALUES (1);

то child не изменится.

1) Что именно вызывает сомнения/вопросы?
2)"не изменится" - это вопрос? утверждение? возражение?

Жизнь коротка - потерпи немного :)

не понимаю я смысла внешних ключей %)

пример:

CREATE TABLE test1 (id INT NOT NULL AUTO_INCREMENT, PRIMARY KEY (id)) TYPE=INNODB;

CREATE TABLE test2 (id INT NOT NULL AUTO_INCREMENT, test1_id INT, PRIMARY KEY (id), FOREIGN KEY (test1_id) REFERENCES test1(id) ON DELETE CASCADE) TYPE=INNODB;

если не трудно поясните пожалуйста почему после

INSERT INTO test1 VALUES (null);
SELECT * FROM test2;

я не увижу

id test1_id

1 1
...
Рейтинг: 0 / 0
07.12.2004, 09:14
    #32815660
Marat_L
Гость
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Связь между базами
Представь что test1- таблица городов,
а test2 таблица людей.

Каждый чел живет в некотором городе (хотя есть конечно и дерёвня :) )
Поэтому у людей стоит ссылка на город, которая ДОЛЖНА БЫТЬ.
В этом и есть смысл внешнего ключа:
- Нельзя ввести человека без города
- Нельзя просто так удалить город, если в нем есть люди
В результате у тебя в базе не будет битых ссылок (т.е. бомжей)

Теперь к твоему вопросу
авторINSERT INTO test1 VALUES (null);
SELECT * FROM test2;
Первым запросом ты просто добавляешь город.
В таблице людей ты ведь ничего не меняешь.
Что ты хочешь там видеть?

Жизнь коротка - потерпи немного :)
...
Рейтинг: 0 / 0
07.12.2004, 13:59
    #32816510
maXmo
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Связь между базами
механизм внешних ключей, предоставляемый движком InnoDB просто генерит ошибку при попытке нарушить связь по внешнему ключу. Т.е. это просто предосторожность. Например, при попытке завести человека из несуществующего города, сгенерится ошибка. Оно тебе точно надо? Эту связь можно сделать лапками. В этом случае слежка за логической целостностью данных (валидностью внешних ключей) ложится на клиента. Может, тебя не напрягает, что в базе есть бомжи, или они не могут возникнуть by desing. В этом случае сильной надобности в автоматической проверке валидности внешних ключей я не вижу.

ЗЫ Никто за тебя данные вставлять не будет.

ma X mo
...
Рейтинг: 0 / 0
08.12.2004, 08:36
    #32817741
Marat_L
Гость
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Связь между базами
maXmoОно тебе точно надо? Эту связь можно сделать лапками.

Если всё делать лапками, тогда зачем нужны СУБД? ;)

Если сервер снимает с тебя еще один головняк с лапками - то это хорошо, IMHO
...
Рейтинг: 0 / 0
Форумы / MySQL [игнор отключен] [закрыт для гостей] / Связь между базами / 13 сообщений из 13, страница 1 из 1
Найденые пользователи ...
Разблокировать пользователей ...
Читали форум (0):
Пользователи онлайн (0):
x
x
Закрыть


Просмотр
0 / 0
Close
Debug Console [Select Text]