Занятие 5-3. определение связи «многие ко многим»
Содержание:
- Отношение «один-к-одному»
- Ассоциация ManyToOne / OneToMany.
- Доступные ограничения поведения
- Определение измерения «многие ко многим»
- Элемент области навигации для основной сущности
- Определение связи «многие ко многим»
- Microsoft Access
- Microsoft Access
- Схема данных
- Поведение отношений
- Microsoft Access
- Есть две таблицы..
- Как определить связи между таблицами
- Вывод
Отношение «один-к-одному»
Отношение или связь «один-к-одному» связывает одну запись таблицы с одной или не связывает ни с одной записью другой таблицы. Иногда этот тип отношения применяется для разбиения таблицы с большим количеством полей на две или несколько меньших таблиц.
Таблица Products (изделия) может содержать подробную информацию, описывающую изделие и его цену, и дополнительные сведения об особенностях его производства.
Эти сведения интересны только сотрудникам инженерно-технических подразделений, поэтому их можно перенести в отдельную таблицу (названную, например, ProductsEngineering (технические характеристики изделия). Это та информация, которая не должна интересовать продавцов при оформлении заказов.
В другой ситуации можно разбить таблицу на две, просто потому что она слишком велика. (Программа Access не разрешает таблице иметь более 255 полей.)
Рис. 5.15. Когда связываются два поля, в которых не допускаются дублирующиеся данные (и флажок Обеспечение целостности данных установлен), Access считает, что создается связь «один-к-одному».
Программа помещает цифру 1 на концах линии связи для того, чтобы отличать ее от других типов связей.
В этом примере столбец ID в таблице Products и столбец ID в таблице ProductsEngineering — первичные ключи соответствующих таблиц, поэтому невозможно связать несколько записей таблицы ProductsEngineering с одной и той же записью таблицы Products
создается так же, как отношение «один-ко-многим» — перетаскиванием с помощью мыши полей на вкладке Схема данных (рис. 5.15). Единственная
разница состоит в том, что всвязанных полях обеих таблиц нужно задать запрет совпадений. В этом случае запись одной таблицы может (как максимум) быть связана с единственной записью в другой таблице.
Примечание
В поле запрещены совпадения, если оно является первичным ключом таблицы (см. разд. «Первичный ключ» главы 2) или если у поля есть индекс, препятствующий появлению дублирующейся информации (см. разд. «Предотвращение дублирования значений с помощью индексов» главы 4).
Применяйте связи «один-к-одному» с осторожностью
Отношения «один-к-одному» крайне редко применяются в программе Access. Обычно гораздо удобнее использовать скрытие столбцов (см. разд. «Скрытие столбцов» главы 3) и запросы (см. главу 6), если вы хотите видеть только отдельные поля таблицы.
• Две части таблицы необходимо поместить в отдельные БД (см. разд. «Что такое разделенная БД» главы 18) для того, чтобы разные люди могли копировать их на разные компьютеры и редактировать независимо.
• Вы хотите защитить от любопытных глаз уязвимые данные. Один из возможных способов — поместить информацию, которую нужно защитить, в отдельную таблицу и сохранить эту таблицу в другой, более защищенный файл БД.
• У вас есть таблица с огромным объемом данных, таких как поля типа Вложение (см. разд. «Вложение» главы 2) с большими документами. В этом случае можно повысить производительность, если разделить таблицу. Вы даже можете решить, что лучше поместить половину таблицы в отдельную БД (см, разд. «Что такое разделенная БД» главы 18).
• Некоторые данные вашей таблицы необязательны. Вместо того чтобы включать большое количество незаполненных полей, можно выделить их в отдельную таблицу. Когда не нужно включать эту информацию, вам не придется добавлять запись в связанную таблицу.
Если у вас нет таких ситуаций, вы больше выиграете от создания одной большой таблицы.
Отношение «многие-ко-многим»
Отношение или связь «многие-ко-многим»связывает одну или несколько записей одной таблицы с одной или несколькими записями в другой таблице. Рассмотрим БД, в которой в отдельных таблицах хранятся данные об авторах и книгах.
Авторы бестселлеров не останавливаются на одной книге (поэтому вы должны иметь возможность связать одного автора с несколькими книгами).
Однако иногда авторы объединяются в команду под одним заглавием (поэтому вы должны иметь возможность связать одну книгу с несколькими авторами).
Аналогичная ситуация возникает, если нужно распределить студентов по курсам, сотрудников по комитетам или ингредиенты по рецептам. Можно даже представить подобную ситуацию и в случае БД с куклами-болванчиками, если несколько изготовителей решат объединиться для изготовления одной куклы-болванчика.
Связи «многие-ко-многим» довольно распространены, и программа Access предоставляет два способа их обработки.
Вы можете следить за любыми ответами на эту запись через RSS 2.0 ленту. Вы можете оставить ответ, или trackback с вашего собственного сайта.
Ассоциация ManyToOne / OneToMany.
Предположим, что каждый продукт в вашей заявке относится только к одной категории. В этом случае вам понадобится класс Category и способ связать объект Product объектом Category.
Начните с создания Category с полем name:
php bin/console make:entity Category New property name (press <return> to stop adding fields): > name Field type (enter ? to see all types) : > string Field length : > 255 Can this field be null in the database (nullable) (yes/no) : > no New property name (press <return> to stop adding fields): > (press enter again to finish)
Это сгенерирует ваш новый класс сущности:
// src/Entity/Category.php // ... class Category { /** * @ORM\Id * @ORM\GeneratedValue * @ORM\Column(type="integer") */ private $id; /** * @ORM\Column(type="string") */ private $name; // ... getters and setters }
Доступные ограничения поведения
Существует ряд ограничений, которые необходимо учитывать при определении отношений сущностей.
-
Настраиваемая сущность не может быть основной в каскадном отношении со связанной системной сущностью. Это означает, что между основной настраиваемой сущностью и связанной системной сущностью не может быть отношений с каким-либо из действий со значением Передавать всем, Передавать активным или Передавать владельцу.
-
У новых отношений действие не может иметь значение Передавать всем, Передавать активным или Передавать владельцу, если связанная сущность в этом отношении уже является связанной сущностью в любом другом отношении, действие которого имеет значение Передавать всем, Передавать активным или Передавать владельцу. Это позволяет избежать создания отношений с несколькими родительскими сущностями.
-
Каскадирование при слиянии не может быть задано или изменено, и оно зависит от указанной сущности. Если указанная сущность является организацией, контактом или интересом, действие выполняется каскадом. В противном случае нет.
Определение измерения «многие ко многим»
-
В обозреватель решений щелкните правой кнопкой мыши элемент измерения и выберите пункт создать измерение.
-
На странице Вас приветствует мастер измерений нажмите кнопку Далее.
-
На странице Выбор метода создания выберите параметр Использовать существующую таблицу и нажмите кнопку Далее.
-
На странице Определение исходных сведений убедитесь, что выбрано представление источника данных Adventure Works DW 2012.
-
В списке Основная таблица выберите таблицу SalesReason.
-
Убедитесь, что в списке Ключевые столбцы присутствует столбец SalesReasonKey .
-
В списке Столбец имени выберите SalesReasonName.
-
Щелкните Далее.
-
На странице Выбор атрибутов измерения атрибут Sales Reason Key автоматически выбран, поскольку он является ключевым. Установите флажок рядом с атрибутом Sales Reason Reason Type , измените его имя на Sales Reason Type и нажмите кнопку Далее.
-
На странице Завершение работы мастера нажмите кнопку Готово , чтобы создать измерение Sales Reason.
-
В меню File (Файл) выберите команду Save All (Сохранить все).
-
На панели Атрибуты конструктора измерений для измерения Sales Reason выберите Sales Reason Key и в окне свойств задайте для свойства Name значение Sales Reason.
-
На панели Иерархии конструктора измерений создайте пользовательскую иерархию Sales Reasons , которая будет содержать уровни Sales Reason Type и Sales Reason (в указанном порядке).
-
В окне свойств задайте значение Все причины покупки для свойства AllMemberName иерархии Sales Reason.
-
Укажите значение Все причины покупки для свойства AttributeAllMemberName измерения Sales Reason.
-
Чтобы добавить созданное измерение в куб Службы Analysis Services Tutorial, переключитесь в Конструктор кубов. На вкладке Структура куба щелкните правой кнопкой мыши панель Измерения и выберите команду Добавить измерение куба.
-
В диалоговом окне Добавление измерения куба выберите Sales Reason и нажмите кнопку ОК.
-
В меню File (Файл) выберите команду Save All (Сохранить все).
Элемент области навигации для основной сущности
Можно показать списки связанных сущностей в основной сущности, развернув панель навигации. С помощью параметров в этой группе можно управлять тем, что будет отображаться в этом списке и будет ли что-то отображаться вовсе. Следующие элементы навигации можно изменить с помощью редактора форм, а с помощью JavaScript разработчик может внести изменения в эти элементы, если отображается форма.
Поле | Описание |
---|---|
Параметры отображения | — Не отображать. Выберите этот параметр, требуется запретить пользователям переходить к списку записей связанных сущностей.- Использовать специальные метки. Выберите этот параметр, если требуется указать специальную метку для использования.- Использовать имя во множественном числе. Выберите этот параметр, если имя связанной сущности во множественном числе требуется использовать в качестве метки. |
Пользовательская метка | При выборе параметра Использовать специальные метки в качестве параметра отображения введите специальную метку, которую требуется использовать вместо имени связанной сущности во множественном числе. |
Область отображения | — Сведения. Выберите этот параметр для включения элемента навигации в группу Общие.- Маркетинг. Выберите этот параметр для включения элемента навигации в группу Маркетинг.- Продажи. Выберите этот параметр для включения элемента навигации в группу Продажи.- Служба. Выберите этот параметр для включения элемента навигации в группу Служба. |
Порядок отображения | Это значение управляет тем, будет ли элемент навигации включен в выбранную область отображения. Диапазон доступных номеров начинается с 10 000. Элементы области навигации с меньшим значением будут стоять в списке выше других отношений. |
Определение связи «многие ко многим»
Переключитесь в конструкторе кубов на куб Службы Analysis Services Tutorial и откройте вкладку Использование измерений .
Обратите внимание, что измерение Sales Reason имеет обычную связь, определенную группой мер Internet Sales Reason , но не имеет связи, определенной группами мер Internet Sales или Reseller Sales. Обратите внимание, что измерение Подробности заказа через Интернет имеет обычную связь, определенную измерением Причина продажи через Интернет , которое в свою очередь имеет Fact Relationship с группой мер Internet Sales
Если измерение не найдено (или не найдено другое измерение со связью с обеими группами мер: Причина покупки через Интернет и Продажи через Интернет ), не получится определить связь «многие ко многим».
Щелкните ячейку на пересечении группы мер Продажи через Интернет и измерения Причина покупки , а затем нажмите кнопку обзора (…).
В диалоговом окне Задание связи в списке Выберите тип связи укажите значение Многие ко многим .
Требуется определить промежуточную группу мер, соединяющую измерение Sales Reason и группу мер Internet Sales.
В списке Промежуточная группа мер выберите значение Internet Sales Reason.
На следующем рисунке отражены изменения, сделанные в диалоговом окне Задание связи .
Нажмите кнопку ОК.
Обратите внимание на значок «многие ко многим», который отражает связь между измерением Sales Reason и группой мер Internet Sales.
Microsoft Access
Офисный программный продукт от «Майкрософт» известен на рынке ПО уже довольно продолжительное время. Он поставляется вместе с текстовым редактором Worfd, табличным процессором Excel и прочими, входящими в линейку «офиса». Можно Access (читается как «аксес», дословный перевод — «доступ») приобрести и отдельно от его «коллег». Рекомендуется купить, разумеется, лицензионный софт, но ни для кого не секрет, сколько пиратских репаков можно найти на просторах Сети, в виде обычных файлов или раздач торрентов. «Майкрософт Аксес» доступен даже в портативной сборке. Она, не требующая инсталляции и особых навыков работы с ПК, лучше всего подходит для выбора, если ПО не будет использоваться продолжительно и часто.
Из контекста ясно, что «Майкрософт Аксес» — это система управления базами данных. Причем одна из популярнейших. Она является реляционной, что значит, она основана на логической модели данных, которая в ходе своей работы обращается к теории множеств и логике первого порядка. Связь многие-ко-многим в Access (примеры будут даны в ходе объяснения) реализуется очень и очень просто. Рассмотрим ее.
Microsoft Access
Офисный программный продукт от «Майкрософт» известен на рынке ПО уже довольно продолжительное время. Он поставляется вместе с текстовым редактором Worfd, табличным процессором Excel и прочими, входящими в линейку «офиса». Можно Access (читается как «аксес», дословный перевод – «доступ») приобрести и отдельно от его «коллег». Рекомендуется купить, разумеется, лицензионный софт, но ни для кого не секрет, сколько пиратских репаков можно найти на просторах Сети, в виде обычных файлов или раздач торрентов. «Майкрософт Аксес» доступен даже в портативной сборке. Она, не требующая инсталляции и особых навыков работы с ПК, лучше всего подходит для выбора, если ПО не будет использоваться продолжительно и часто.
Из контекста ясно, что «Майкрософт Аксес» – это система управления базами данных. Причем одна из популярнейших. Она является реляционной, что значит, она основана на логической модели данных, которая в ходе своей работы обращается к теории множеств и логике первого порядка. Связь многие-ко-многим в Access (примеры будут даны в ходе объяснения) реализуется очень и очень просто. Рассмотрим ее.
Схема данных
Связи между таблицами в СУБД «Майкрософт Аксес» реализуются при помощи вкладки «Схема данных». На появившуюся панель добавляются все необходимые сущности (в нашем случае все три таблицы). Создание связи многие-ко-многим будет происходить при помощи двух отношений один-к-многих между главными («Студенты» и «Преподаватели») и промежуточной таблицы. Для этого необходимо соединить между собой соответствующие первичные ключи.
На иллюстрации выше показано, как выглядит вкладка «Схема данных» (Relathionships). Количество добавляемых на панель таблиц неограниченно. Расположение полностью регулируется пользователем.
Проектирование баз данных на SQL – задача сложнее, чем на «Аксес». Если майкрософтовский продукт полностью адаптирован под офисную среду, имеет огромный и, с каждым выпуском и обновлением все расширяемый, функционал, но в то же время и удобный для простого пользователя интерфейс, то SQL – это отдельный непроцедурный язык программирования, при помощи которого на разных платформах можно работать с базами данных. Известное ПО для данной задачи: Oracle MySQL и DB2 (популярное, но не единственное в своем роде). Несмотря на то, что у каждого из них есть свои тонкости и нюансы, язык SQL их «объединяет». Научившись работать хотя бы с одним из них, разобраться с другим будет гораздо проще.
Создание, заполнение и непосредственно действия над уже имеющейся БД в SQL нужно через специальные коды или скрипты. Однако те, кто уже добрался до раздела «Связь многие-ко-многим», пример которой на данном языке программирования будет предоставлен ниже, должны знать хотя бы основные команды и принципы использования языка SQL.
Поведение отношений
Можно настроить поведение отношения 1:N для поддержки бизнес-правил организации. Почему это может потребоваться? Рассмотрим пример.
Допустим, у вас новый продавец и требуется назначить ему несколько существующих возможных сделок, в данное время назначенных другому продавцу. Каждая запись возможной сделки может иметь несколько действий задач, связанных с ней. Можно легко найти активные возможные сделки, которые требуется переназначить, и назначить их новому продавцу. Но что произойдет с действиями задач, связанными с возможными сделками? Хотелось бы вам открывать каждую задачу и указывать, должна ли она также быть назначена новому продавцу? Скорее всего, нет. Вместо этого можно разрешить отношению применить некоторые стандартные правила автоматически. Эти правила применяются только к записям задач, связанным с возможными сделками, которые вы переназначаете. Это отношение сущностей называется Opportunity_Tasks. Можно выполнить следующие действия:
-
Переназначить все активные задачи.
-
Переназначить все задачи. Это поведение принимается по умолчанию.
-
Не переназначать задачи.
-
Переназначить все задачи, которые в данный момент назначены бывшему владельцу возможной сделки.
Отношение может управлять тем, как действия, выполняемые с записью для записи основной сущности, распространяются на все записи связанной сущности. Действия и возможное поведение приведены в следующей таблице.
Действие | Описание | Возможное поведение |
---|---|---|
Назначение | Что должно произойти, когда меняется владелец записи основной сущности? | — Каскад для активных- Каскад для всех- Без каскадных- Каскад для ответств. |
Общий доступ | Что должно произойти при совместном использовании записи основной сущности? | — Каскад для активных- Каскад для всех- Без каскадных- Каскад для ответств. |
Отмена общего доступа | Что должно произойти при отмене совместного использования записи основной сущности? | — Каскад для активных- Каскад для всех- Без каскадных- Каскад для ответств. |
Переподчинение | Что должно произойти, когда меняется значение поля поиска для отношения родительского типа в записи основной сущности? Отношение родительского типа — это отношение, использующее Каскад для всех для всех действий. — Каскад для активных- Каскад для всех- Без каскадных- Каскад для ответств. | |
Удаление | Что должно произойти при удалении записи основной сущности? | — Каскад для всех- Удалить связь- Ограничить удаление |
Слияние | Что должно произойти, когда запись основной сущности объединяется с другой записью? | — Каскад для всех- Без каскадных |
Каждое из этих действий можно настроить для управления тем, как действия будут распространяться на записи, связанные с записью основной сущности отношением сущностей 1:N. Параметры поведения представлены в следующей таблице.
Поведение | Описание |
---|---|
Передавать активным | Выполнение действия для всех активных записей связанной сущности. |
Передавать всем | Выполнение действия для всех записей связанной сущности. |
Не передавать никому | Никакие действия не выполняются. |
Удалить ссылку | Удаление значения поля поиска для всех записей связанной сущности. |
Ограничить удаление | Блокировка возможности удаления записи основной сущности, если существуют связанные записи. |
Передавать владельцу | Выполнение действия для всех записей связанной сущности тем же пользователем, что и пользователь записи основной сущности. |
Способ применения этих действий в отношении можно классифицировать и применить с помощью значений поля Тип поведения, описанных в следующей таблице.
Значение поля | Описание |
---|---|
Родительский | Все действия используют поведение Передавать всем. |
Ссылочный | Действия Назначить, Предоставить общий доступ, Отменить общий доступ и Переподчинение используют поведение Не передавать никому. Действие Удалить использует поведение Удалить ссылку. Действие Объединить использует поведение Передавать всем. |
Ссылочный, ограничить удаление | Аналогично значению Ссылочный за исключением того, что действие Удалить использует поведение Ограничить удаление. |
Настраиваемое каскадное | Отдельное поведение можно назначить для каждого действия. Если выбранные значения соответствуют любым другим категориям Тип поведения, значение изменится на значение Тип поведения. |
Microsoft Access
Офисный программный продукт от «Майкрософт» известен на рынке ПО уже довольно продолжительное время. Он поставляется вместе с текстовым редактором Worfd, табличным процессором Excel и прочими, входящими в линейку «офиса». Можно Access (читается как «аксес», дословный перевод – «доступ») приобрести и отдельно от его «коллег». Рекомендуется купить, разумеется, лицензионный софт, но ни для кого не секрет, сколько пиратских репаков можно найти на просторах Сети, в виде обычных файлов или раздач торрентов. «Майкрософт Аксес» доступен даже в портативной сборке. Она, не требующая инсталляции и особых навыков работы с ПК, лучше всего подходит для выбора, если ПО не будет использоваться продолжительно и часто.
Из контекста ясно, что «Майкрософт Аксес» – это система управления базами данных. Причем одна из популярнейших. Она является реляционной, что значит, она основана на логической модели данных, которая в ходе своей работы обращается к теории множеств и логике первого порядка. Связь многие-ко-многим в Access (примеры будут даны в ходе объяснения) реализуется очень и очень просто. Рассмотрим ее.
Есть две таблицы..
Чтобы не придумывать ничего нового, возьмем уже указанный для того, чтобы разъяснить связь многие-ко-многим, пример про студенчество. Необходимо создать таблицу «Студенты» и таблицу «Преподаватели». Как в первой, так и во второй из них имеются первичные ключи. Для объединения экземпляров этих двух сущностей требуется также еще одна таблица, поля которой — ключи первой и второй таблиц.
Если рассмотреть иной пример: допустим, футболисты и команды ( с учетом того, что хотя бы один из футболистов играл за разные сборные, и каждая сборная имеет в своем составе одиннадцать игроков), суть построения связи не поменяется. Также будут нужны три таблицы. Из них «Футболисты» и «Команды» в качестве основных, и одна промежуточная.
Как определить связи между таблицами
При создании связи между таблицами связанные поля не должны иметь одни и те же имена. Однако связанные поля должны иметь один и тот же тип данных, если только поле первичного ключа не является полем AutoNumber. Вы можете сопоставить поле AutoNumber с полем Number, только если свойство FieldSize обоих совпадающих полей совпадает. Например, можно сопоставить поле AutoNumber и поле Number, если свойство theFieldSizeproperty обоих полей имеет значение Long Integer. Даже если оба совпадающих поля являются числовыми полями, они должны иметь параметр sameFieldSizeproperty.
Как определить связи «один ко многим» или «один к одному»
Чтобы создать связь «один ко многим» или «один к одному», выполните следующие действия.
-
Закройте все таблицы. Нельзя создавать или изменять связи между открытыми таблицами.
-
В Access 2002 и Access 2003 выполните следующие действия.
- Нажмите F11, чтобы переключиться в окно базы данных.
- В меню Инструменты выберите Связи.
В Access 2007, Access 2010 или Access 2013 нажмите Связи в группе Показать/Скрыть на вкладке Инструменты базы данных.
-
Если вы еще не определили какие-либо связи в базе данных, автоматически отобразится диалоговое окно Показать таблицу. Если вы хотите добавить таблицы, которые нужно связать, но диалоговое окно Добавление таблицы не отображается, нажмите Добавить таблицу в меню Связи.
-
Дважды щелкните имена таблиц, которые необходимо связать, а затем закройте диалоговое окно Добавление таблицы. Чтобы создать связь между одной и той же таблицей, добавьте эту таблицу два раза.
-
Перетащите поле, которое вы хотите связать, из одной таблицы в связанное поле в другой таблице. Чтобы перетащить несколько полей, нажмите Ctrl, нажмите на каждое поле, а затем перетащите их.
В большинстве случаев вы перетаскиваете поле первичного ключа (это поле отображается жирным текстом) из одной таблицы в аналогичное поле (это поле часто имеет одно и то же имя), которое называется внешним ключом в другой таблице.
-
Откроется диалоговое окно Изменение связей. Убедитесь, что имена полей, отображаемые в двух столбцах, верны. Вы можете изменить имена, если это необходимо.
При необходимости установите параметры связей. Если вам нужна информация о конкретном элементе в диалоговом окне Изменение связей, нажмите кнопку со знаком вопроса, а затем щелкните элемент. (Эти параметры будут подробно описаны ниже в этой статье.)
-
Нажмите кнопку Создать, чтобы создать связь.
-
Повторите шаги с 4 по 7 для каждой пары таблиц, которые вы хотите связать.
При закрытии диалогового окна Изменение связей Access спрашивает, хотите ли вы сохранить макет. Сохраняете ли вы макет или не сохраняете макет, созданные вами связи сохраняются в базе данных.
Примечание
Можно создавать связи не только в таблицах, но и в запросах. Однако целостность данных связывания не обеспечивается с помощью запросов.
Как определить связь «многие ко многим»
Чтобы создать связь «многие ко многим», выполните следующие действия.
-
Создайте две таблицы, которые будут иметь связь «многие ко многим».
-
Создайте третью таблицу. Это стыковочная таблица. В таблице соединения добавьте новые поля, которые имеют те же определения, что и основные ключевые поля из каждой таблицы, созданной в шаге 1. В связующей таблице основные ключевые поля функционируют как внешние ключи. Вы можете добавить другие поля в связующую таблицу, так же, как и в любую другую таблицу.
-
В связующей таблице установите первичный ключ, чтобы включить основные ключевые поля из двух других таблиц. Например, в связующей таблице «TitleAuthors» первичный ключ будет состоять из полей OrderID и ProductID.
Примечание
Чтобы создать первичный ключ, выполните следующие действия:
-
Откройте таблицу в Конструкторе.
-
Выберите поле или поля, которые вы хотите определить в качестве первичного ключа. Чтобы выбрать одно поле, нажмите на селектор строки для нужного поля. Чтобы выбрать несколько полей, удерживайте клавишу Ctrl, а затем нажмите селектор строки для каждого поля.
-
В Access 2002 или в Access 2003 нажмите на Первичный ключ на панели инструментов.
В Access 2007 нажмите на Первичный ключ в группе Инструменты на вкладке Дизайн.
Примечание
Если вы хотите, чтобы порядок полей в первичном ключе с несколькими полями отличался от порядка этих полей в таблице, нажмите Индексы на панели инструментов для отображения диалогового окна Indexes, а затем заново упорядочите имена полей для индекса с именем PrimaryKey.
-
-
Определите связь один-ко-многим между каждой основной и связующей таблицами.
Вывод
Знание трех типов табличных отношений очень важно, особенно с учетом того, что чаще всего разработчик приложения использует несколько уровней абстракций при взаимодействии с базой данных. Кроме того, при использовании инструмента ORM очень важно проверить связи таблиц, созданные платформой доступа к данным, чтобы убедиться, что они соответствуют стандартному определению и что они не пытаются имитировать связь с использованием неоптимального подхода
Кроме того, при использовании инструмента ORM очень важно проверить связи таблиц, созданные платформой доступа к данным, чтобы убедиться, что они соответствуют стандартному определению и что они не пытаются имитировать связь с использованием неоптимального подхода