Форум программистов
 

Восстановите пароль или Зарегистрируйтесь на форуме, о проблемах и с заказом рекламы пишите сюда - alarforum@yandex.ru, проверяйте папку спам!

Вернуться   Форум программистов > Delphi программирование > БД в Delphi
Регистрация

Восстановить пароль
Повторная активизация e-mail

Купить рекламу на форуме - 42 тыс руб за месяц

Ответ
 
Опции темы Поиск в этой теме
Старый 08.05.2015, 16:18   #1
Marla14
Пользователь
 
Регистрация: 29.01.2015
Сообщений: 38
По умолчанию Связь подчиненных таблиц

Имеется БД, связанная с Access, TADOConnection, TADOTable, TDataSource, имеется 4 таблицы, 2 из них главные, 2 другие подчиненные соответственно, связь один ко многим. Подскажите пожалуйста, возможно ли реализовать связь один к одному между 2мя подчиненными таблицами и каким способом
Marla14 вне форума Ответить с цитированием
Старый 08.05.2015, 17:43   #2
xxbesoxx
Участник клуба
 
Регистрация: 10.08.2010
Сообщений: 1,389
По умолчанию

http://www.online-academy.ru/demo/ac...teor/teor4.htm
http://ru.stackoverflow.com/question...BD%D1%8B%D1%85
http://www.specialist.ru/message/66920/1
http://www.codenet.ru/progr/vbasic/vb_db/1.php
Изображения
Тип файла: jpg 1-1.jpg (65.0 Кб, 148 просмотров)

Последний раз редактировалось xxbesoxx; 08.05.2015 в 17:48.
xxbesoxx вне форума Ответить с цитированием
Старый 08.05.2015, 17:50   #3
Stilet
Белик Виталий :)
Старожил
 
Аватар для Stilet
 
Регистрация: 23.07.2007
Сообщений: 57,097
По умолчанию

На сколько я помню связь 1:1 организовывается уникальностью ключей как первичного в главной таблице так и внешнего в подчиненной. Т.е. это определяется на стадии проектирования самой БД, а не потом, когда программу пишешь. Чтоб точно ответить на этот вопрос нужно видеть структуру БД.
I'm learning to live...
Stilet вне форума Ответить с цитированием
Старый 08.05.2015, 18:03   #4
Marla14
Пользователь
 
Регистрация: 29.01.2015
Сообщений: 38
По умолчанию

Попробую описать процесс работы БД, есть таблица книги (главная) и экземпляры (подчиненная) связь один ко многим, т.е. у одной книги несколько экземпляров, далее таблица ученики(главная) и табл. книги на руках(подчиненная), т.е. один ученик может взять несколько книг. Так вот при добавлении строки в таблицу "книги на руках" должна происходить связь с таблицей "Экземпляры" по коду книги, т.е. ученик берет конкретный экземпляр. Я не знаю как это реализовать т.к. таблицы "Экземпляры" и "книги на руках" являются подчиненными следовательно с помощью свойства MasterField это не получится сделать. как должно быть есть схема из аксесс

Может я конечно не правильно понимаю, может возможно просто программно обращаться к определенной строке таблице(книги на руках) по коду из другой(экземпляры)
Изображения
Тип файла: jpg 145.jpg (12.8 Кб, 146 просмотров)

Последний раз редактировалось Stilet; 08.05.2015 в 18:24.
Marla14 вне форума Ответить с цитированием
Старый 08.05.2015, 18:26   #5
Stilet
Белик Виталий :)
Старожил
 
Аватар для Stilet
 
Регистрация: 23.07.2007
Сообщений: 57,097
По умолчанию

Тыыкс... А у тебя избыточность.
Таблица Экземпляры тут вообще не нужна. Это тебе кто такую структуру придумал?
Если препод то он дурень, если ты, то пересмотри ее, и убери лишние таблицы.
I'm learning to live...
Stilet вне форума Ответить с цитированием
Старый 08.05.2015, 18:37   #6
Marla14
Пользователь
 
Регистрация: 29.01.2015
Сообщений: 38
По умолчанию

Может подскажите тогда как в БД включить экземпляры книг и как это организовать, а БД нашел на каком то сайте только экзешник, там было все именно так
Marla14 вне форума Ответить с цитированием
Старый 08.05.2015, 18:52   #7
xxbesoxx
Участник клуба
 
Регистрация: 10.08.2010
Сообщений: 1,389
По умолчанию

Цитата:
Может подскажите тогда как в БД включить экземпляры книг и как это организовать,
Смотрите здесь !
http://erpandcrm.ru/sbis_administrat..._tablicami.htm
Связь "Один к одному"

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

Например, чтобы постоянно "не таскать" все данные о сотруднике (а их достаточно много), таблица "Сотрудники" разбита на две - "Сотрудники" и "Сотрудники (расширение)". Записи этих таблиц связаны между собой отношением "один к одному". Для организации такой связи в обе таблицы помещается поле, содержащее адрес записи другой таблицы. Получается следующая схема:

Потом можно посмотреть это http://kohanaframework.su/database/orm_connections1

Последний раз редактировалось xxbesoxx; 08.05.2015 в 18:56.
xxbesoxx вне форума Ответить с цитированием
Старый 08.05.2015, 18:58   #8
Marla14
Пользователь
 
Регистрация: 29.01.2015
Сообщений: 38
По умолчанию

Да это понятно, что такое связь один к одному, вопрос в том как это сделать на примере моей бд в delphi
Marla14 вне форума Ответить с цитированием
Старый 08.05.2015, 19:08   #9
xxbesoxx
Участник клуба
 
Регистрация: 10.08.2010
Сообщений: 1,389
По умолчанию

Цитата:
Сообщение от Marla14 Посмотреть сообщение
вопрос в том как это сделать на примере моей бд в delphi
Причем тут Delphi ? вам уже сказали что это относится проектирование БД
http://kohanaframework.su/database/orm_connections1
xxbesoxx вне форума Ответить с цитированием
Старый 08.05.2015, 19:11   #10
Marla14
Пользователь
 
Регистрация: 29.01.2015
Сообщений: 38
По умолчанию

То есть БД не правильно спроектирована? Если так, то как правильно сделать с таким же функционалом?
Marla14 вне форума Ответить с цитированием
Ответ


Купить рекламу на форуме - 42 тыс руб за месяц



Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
Связь таблиц. victor5133 Microsoft Office Access 4 28.02.2013 18:55
Связь таблиц flyinsky Microsoft Office Access 3 05.12.2010 11:23
Связь таблиц Etlau Помощь студентам 0 27.12.2009 15:10
Связь таблиц maximorion БД в Delphi 1 22.05.2009 11:30
Связь таблиц БД kaa БД в Delphi 5 18.09.2007 18:29