Версия для печати темы
Нажмите сюда для просмотра этой темы в оригинальном формате
Форум программистов > C/C++: Базы данных > Связь между таблицами


Автор: OksanaM 4.9.2007, 10:34
Подскажите, пожалуйста как сделать связь между таблицами один ко многим? Я делаю через свойство Referential Integrity и получается связь один к одному.

Автор: Rodman 4.9.2007, 11:21
Цитата(OksanaM @  4.9.2007,  10:34 Найти цитируемый пост)
и получается связь один к одному.

наверно соединяешь первичные ключи в таблицах...

есть примерная схема базы?

Автор: Anark1 4.9.2007, 15:07
Что за БД ? Какой нибудь Access ?

Автор: OksanaM 7.9.2007, 15:53
Да действитель соединяю первичные ключи. У меня 2 таблицы. Поля 1й: код страны, название страны; и 2я : название страны, курорт, отель, дата отлета, дата прилета... И Название страны в обеих таблицах - первичный ключ.  

Автор: Anark1 7.9.2007, 16:05
Стоит создать в одной из таблиц еще одно поле и выполнять привязку через него.

Автор: OksanaM 7.9.2007, 16:12
Если сделать во 2й таблице поле "номер путевки" - сделать его первичным ключом, а с поля "название страны" убрать ключ. и потом соединить эти таблицы по полю "название страны". Получится?

Автор: Rodman 7.9.2007, 16:29
Поля 1й: код страны, название страны; и 2я : Код таблицы, код страны, курорт, отель, дата отлета, дата прилета

синие - соединить надо
Жирный - Добавить

Автор: OksanaM 7.9.2007, 16:41
А можно во 2й таблице оставить поле "название страны"? Вообще правда получится ерунда, тогда можно вообще 1ю таблицу не делать. А мне надо чтобы во второй таблице было поле "название страны". 

Автор: Damarus 7.9.2007, 17:59
Цитата(OksanaM @  7.9.2007,  17:41 Найти цитируемый пост)
А можно во 2й таблице оставить поле "название страны"? Вообще правда получится ерунда, тогда можно вообще 1ю таблицу не делать. А мне надо чтобы во второй таблице было поле "название страны".  

Оставить можно что угодно, только зачем?

Автор: Rodman 7.9.2007, 19:33
Цитата(Rodman @  7.9.2007,  16:29 Найти цитируемый пост)
код страны,

Цитата(OksanaM @  7.9.2007,  16:41 Найти цитируемый пост)
название страны"

это оно и есть!!!

Автор: OksanaM 10.9.2007, 09:36
Rodman простите меня за непонимание (это по неопытности). Но я не совсем поняла, что значит ваш ответ. Может мне вообще связь не делать. Опишу Вам свое задание. Мне надо создать базу для работы оператора турфирмы. Т.е. должен быть реализован быстрый поиск путевок из базы по разным параметрам, добавление путевки в базу, ее резервирование и печать зарезервированного заказа (когда он подтвердится, соответственно после удалить эту путевку из базы). Я начала выполнять первую часть, поиск путевки по базе. Для этого создала 2 таблицы 1я: Поля: Код страны, название страны. и 2я: Поля: Название страны, курорт, отель, дата отлета, дата прилета, питание, стоимость, количество мест. Я хочу сделать поиск таким образом: На форме будет расположен ComboBox в который при запуске формы будет заполняться названиями стран из первой таблицы. Надо будет выбрать нужную страну и потом будет осуществляться поиск по таблице 2, и надо будет вывести все поля где совпали выбранное значение и значение в таблице. Нужно делать связь или можно и без нее? Помогите, пожалуйста, совсем времени не осталось. Заранее спасибо!

Автор: Rodman 10.9.2007, 10:33
Вот как я себе это представляю...


Автор: OksanaM 10.9.2007, 11:01
Rodman я создаю это все в C++ Builder 5.0 Если у Вас есть возможность то посмотрите пожалуйста. Только сюда не поместился файл с расширением  tds

Автор: Rodman 10.9.2007, 11:11
Ну так почему не было сказано что база в Парадоксе...

Ты мою базу открыла??? Схему видела?

по ней можешь и свою сделать!

Добавлено через 5 минут и 51 секунду
по поводу континента я ничего не вводил...

Если они тебе нужны то схему можно немного переработать...

но в основном моя схема как раз соответствует все требованиям формирования БД...

Автор: OksanaM 10.9.2007, 11:23
Наверное я действительно не точно составляю свои вопросы, спасибо за помощь попробую двигаться дальше

Автор: Rodman 10.9.2007, 11:34
вот переделал с континентами...
с Access можешь работать? можешь проверить все?

Powered by Invision Power Board (http://www.invisionboard.com)
© Invision Power Services (http://www.invisionpower.com)