![]() |
|
|
Регистрация Восстановить пароль |
Регистрация | Задать вопрос |
Заплачу за решение |
Новые сообщения |
Сообщения за день |
Расширенный поиск |
Правила |
Всё прочитано |
![]() |
|
Опции темы
![]() |
Поиск в этой теме
![]() |
![]() |
#1 |
Пользователь
Регистрация: 18.12.2010
Сообщений: 21
|
![]()
Уважаемые знатоки, помогите, пожалуйста, с реализацией связей в таблицах!
Пытаюсь создать связи многие-ко-многим с использованием связующих таблиц (см. в приложенном файле). Исходя из предметной области ситуация такая: у каждой фирмы может быть несколько адресов ("юридический", фактический и т.д.) и соотв по каждому адресу может находиться неск фирм (то же касается и схемы Фирма-Учредитель). "По книжному", как я понимаю, есть два варианта привязки связующих таблиц (у меня их названия начинаюся с tblCon_): 1 - по полю первичного ключа табл ФИРМЫ и 2 - по соотв индексированным полям в табл ФИРМЫ ("КодАдреса" и "УчредителиФизЛица"). В первом случае, во-первых, - не дает установить такую связь: Relationship must be on the same number of fields with the same data types. (Error 3368); во-вторых, - а корректно ли "вешать" много таких связей (в примере я оставил только две) на один первичный ключ? Во втором случае пробовал связать по индексированным полям "КодАдреса" и "УчредителиФизЛица": получается. Но как в таком случае "заполнять" связующую таблицу данными - максимально "автоматизированно"??? (А2007, Win7) Заранее спасибо всем, кто откликнулся... |
![]() |
![]() |
![]() |
#2 |
Старожил
Регистрация: 09.01.2008
Сообщений: 26,229
|
![]()
не смотрел Ваш пример, но вообще-то,
в теории реляционных СУБД связь многие-ко-многим ВСЕГДА организуется через промежуточную таблицу: Код:
|
![]() |
![]() |
![]() |
#3 | |
Пользователь
Регистрация: 18.12.2010
Сообщений: 21
|
![]() Цитата:
|
|
![]() |
![]() |
![]() |
#4 | |
Форумчанин
Регистрация: 27.09.2010
Сообщений: 376
|
![]() Цитата:
Связующая таблица связывает записи из левой таблицы и правой. Каждая запись в каждой таблице уникальна, по определению. Объединив правую таблицу со связывающей Вы можете найти для каждой отдельной записи из левой таблицы все соответствующие записи из правой, объединив её (лт) с полученным результатом по ключевому полю таблицы (левой), и наоборот объединив левую таблицу со связывающей Вы можете найти для каждой отдельной записи из правой таблицы все соответствующие записи из левой, объединив её (пт) с полученным результатом по ключевому полю таблицы (правой). Добавка. Если использовать составной ключ [Код организации]-[Код адреса] невозможно получение дублей записей в связывающей таблице. Извините что вклиниваюсь: Интересен был бы пример использования [ID записи]. Спасибо. PS Возвращаясь к исходному вопросу. Форма с подчинённой формой. Форма - источник записей - левая таблица, подчинённая форма - связывающая таблица, источник строк поля со списком в связывающей таблице - правая таблица. Сами разберётесь с полем со списком, шириной столбцов для этого поля со списком... Последний раз редактировалось OlegVE; 10.01.2011 в 16:11. Причина: Добавка |
|
![]() |
![]() |
![]() |
#5 | |
Пользователь
Регистрация: 18.12.2010
Сообщений: 21
|
![]() Цитата:
|
|
![]() |
![]() |
![]() |
#6 |
Пользователь
Регистрация: 18.12.2010
Сообщений: 21
|
![]()
ОК, принято
|
![]() |
![]() |
![]() |
#7 | |
Форумчанин
Регистрация: 27.09.2010
Сообщений: 376
|
![]()
Здравствуйте.
Цитата:
Вы хотите разобраться как работает сама Система управления базой данных? Нужно ли Вам знать знать работу карбюратора, сцепления и т.д. и т.п. (СУБД) если Вам нужно просто ездить на автомобиле (SQL или неявно строящиеся инструкции SQL в Microsoft Access при визуальной разработке, при этом пользователь вовсе не видит инструкций DDL и ему кажется, что он видит ВСЕ инструкции DML)? Вы пробовали сделать форму с подчинённой формой и проверить работает ли INSERT, UPDATE и DELETE? Впрочем, можно не отвечать на этот вопрос. См. Microsoft Access XP Помощь, может здесь для Вас есть ответы: "Справка Microsoft Access" -> "Работа с таблицами" -> "Настройка связей и параметров целостности данных" -> "Определение связей между таблицами в базе данных Access" До свидания. Последний раз редактировалось OlegVE; 11.01.2011 в 14:46. |
|
![]() |
![]() |
![]() |
#8 |
Пользователь
Регистрация: 18.12.2010
Сообщений: 21
|
![]()
Здравствуйте, Oleg! Я неправильно выразился в вопросе (не тот семестер...
![]() |
![]() |
![]() |
![]() |
![]() |
||||
Тема | Автор | Раздел | Ответов | Последнее сообщение |
Создание связи многие ко многим в Delphi | rockedit | БД в Delphi | 1 | 11.01.2011 15:10 |
Связь многие ко многим | Dirt | БД в Delphi | 10 | 11.05.2010 18:28 |
select по многим условиям | natishka | SQL, базы данных | 5 | 06.09.2009 19:23 |
Связь многие-ко-многим | andirock2112 | БД в Delphi | 10 | 12.04.2009 22:05 |
Многие ко многим | ("")(Э_Є)("") | БД в Delphi | 1 | 12.03.2009 01:18 |