Форум программистов, компьютерный форум, киберфорум
Microsoft Access
Войти
Регистрация
Восстановить пароль
Блоги Сообщество Поиск Заказать работу  
 
Рейтинг 4.83/6: Рейтинг темы: голосов - 6, средняя оценка - 4.83
50 / 50 / 20
Регистрация: 24.10.2010
Сообщений: 131

Что выбрать в качестве главного ключа?

23.05.2011, 20:14. Показов 1317. Ответов 3
Метки нет (Все метки)

Студворк — интернет-сервис помощи студентам
К примеру, есть две таблицы:
Авиакомпании(Код_авиакомпании,Название_авиакомпании,Адрес,и т.д.)
Самолеты(Борт_номер,Код_авиакомпании,и т.д.)
Связь 1:М по полю Код_авиакомпании (одна авиакомпания имеет несколько самолетов)
В таблице Авиакомпании уникальны как Код_авиакомпании, так и Название_авиакомпании.
Можно ли первичным ключом в Авиакомпании сделать Название_авиакомпании и по нему уже связать с Самолетами? Понимаю, что можно, но как лучше/правильнее: иметь в каждой таблице Коды (типа счетчик) или достаточно уникального имени?
Просто еще заметил, если использовать имя, а не код, то проще выводить данные на формы, не нужно делать подстановку и прочее..
Посоветуйте, пожалуйста!!
Спасибо.
0
IT_Exp
Эксперт
34794 / 4073 / 2104
Регистрация: 17.06.2006
Сообщений: 32,602
Блог
23.05.2011, 20:14
Ответы с готовыми решениями:

Что выбрать в качестве визуальной среды программирования?
Привет, возник такой вопрос, может глупо задавать его в форуме посвященном Delphi, но тем не менее. Я знаю немного паскаль, немного Си,...

Что выбрать в качестве родителя для класса-коллекции
Спроектируйте и реализуйте класс-коллекцию для хранения элементов, имеющих уникальный составной ключ (Id и Name – компоненты ключа, могу...

Что выбрать для игрового ноутбука в качестве монитора
Господа эксперты, есть вопрос. Хочу купить монитор или телек (только фулл ХД) для того чтобы подключать его к ноуту. Ноут мощный, фулл хд...

3
31 / 17 / 0
Регистрация: 31.05.2010
Сообщений: 102
23.05.2011, 21:23
Универсальный и самый правильный способ.
Поле КодАвиакомпании - тип поля счетчик, ключевое поле (само собой счетчик всегда уникальный)
Поле КодСамолета - тип поля счетчик, ключевое поле (само собой счетчик всегда уникальный)
Поскольку конкретный самолет всегда принадлежит только одной компании, то третью таблицу связи делать не надо. Достаточно в таблице Самолетов создать поле связи, например, КодАвиа (длинное целое). Мастером подстановок (самый последний в выпадающем списке выбора типа поля в конструкторе таблицы с самолетами) или ручками связать поля КодАвиакомпании и КодАвиа (один ко многим естественно).
1
31 / 17 / 0
Регистрация: 31.05.2010
Сообщений: 102
23.05.2011, 21:43
Связывать надо всегда код а не имя, а чтобы выводились не коды, а слова надо брать ещё и текстовые поля, указывая их ширину через точку с запятой. 0см - это ширина ключевого поля с цифрой, чтобы не маячил в таблицах и потом в формах (в выпадающих списках).
Смотри иллюстрацию на скриншоте.
Применительно к тебе на скриншоте - таблица самолетов. А сотрудники (затратчики) - авиакомпании. Всего 2 столбца, но присоединен один ПЕРВЫЙ. В первом цифра (не видна, т.к. 0см), а во втором фамилия сотрудника (название авиакомпании)
1
3357 / 1776 / 83
Регистрация: 05.08.2010
Сообщений: 4,471
24.05.2011, 07:45
Цитата Сообщение от garkeP91 Посмотреть сообщение
К примеру, есть две таблицы:
Авиакомпании(Код_авиакомпании,Название_авиакомпании,Адрес,и т.д.)
Самолеты(Борт_номер,Код_авиакомпании,и т.д.)
Связь 1:М по полю Код_авиакомпании (одна авиакомпания имеет несколько самолетов)
В таблице Авиакомпании уникальны как Код_авиакомпании, так и Название_авиакомпании.
Можно ли первичным ключом в Авиакомпании сделать Название_авиакомпании и по нему уже связать с Самолетами? Понимаю, что можно, но как лучше/правильнее: иметь в каждой таблице Коды (типа счетчик) или достаточно уникального имени?
Просто еще заметил, если использовать имя, а не код, то проще выводить данные на формы, не нужно делать подстановку и прочее..
Посоветуйте, пожалуйста!!
Спасибо.
1.Борт_номер - я так понимаю счетчик?
если да, - это не есть правильно.Нужно добавить поле-счетчик(например,id) и связывать счетчик первой таблицы с числовым полем второй таблицы.
2.
если использовать имя, а не код, то проще выводить данные на формы
Ни разу не слышал такого.Лично мне АБСОЛЮТНО не мешает(думаю, и не только мне.)
3.
Связь 1:М по полю Код_авиакомпании (одна авиакомпания имеет несколько самолетов)
-правильно:-)
0
Надоела реклама? Зарегистрируйтесь и она исчезнет полностью.
BasicMan
Эксперт
29316 / 5623 / 2384
Регистрация: 17.02.2009
Сообщений: 30,364
Блог
24.05.2011, 07:45
Помогаю со студенческими работами здесь

Создать программу, в которой словарь будет принимать в качестве ключа значения счётчика, а в качестве значения, то,
Создать программу, в которой словарь будет принимать в качестве ключа значения счётчика, а в качестве значения, то, что введет...

MAP в качестве ключа
Есть map<string, map<Language, string> lang; map<string, map<Language, string> >::iterator itr = langHashtable.find(keyLabe); Нахожу...

Map. 0 в качестве ключа [0]
Если создать словарь map и в качестве ключа использовать целые числа. Почему нельзя использовать ключ 0 ? Когда пытаешься вывести, выдает...

HashMap - в качестве ключа объект
Добрый день! Мне понадобилось решить такую задачу: ключ - комплексный объект, состоящий из 64 битного целого числа и строки из 5...

Структура в качестве ключа QMap
Вопрос такой, можно ли в качестве ключа в QMap поместить струткуру? К примеру: struct Dual { int a,b; Dual(int c, int d){...


Искать еще темы с ответами

Или воспользуйтесь поиском по форуму:
4
Ответ Создать тему
Новые блоги и статьи
SDL3 для Web (WebAssembly): Реализация движения на Box2D v3 - трение и коллизии с повёрнутыми стенами
8Observer8 20.02.2026
Содержание блога Box2D позволяет легко создать главного героя, который не проходит сквозь стены и перемещается с заданным трением о препятствия, которые можно располагать под углом, как верхнее. . .
Конвертировать закладки radiotray-ng в m3u-плейлист
damix 19.02.2026
Это можно сделать скриптом для PowerShell. Использование . \СonvertRadiotrayToM3U. ps1 <path_to_bookmarks. json> Рядом с файлом bookmarks. json появится файл bookmarks. m3u с результатом. # Check if. . .
Семь CDC на одном интерфейсе: 5 U[S]ARTов, 1 CAN и 1 SSI
Eddy_Em 18.02.2026
Постепенно допиливаю свою "многоинтерфейсную плату". Выглядит вот так: https:/ / www. cyberforum. ru/ blog_attachment. php?attachmentid=11617&stc=1&d=1771445347 Основана на STM32F303RBT6. На борту пять. . .
Камера Toupcam IUA500KMA
Eddy_Em 12.02.2026
Т. к. у всяких "хикроботов" слишком уж мелкий пиксель, для подсмотра в ESPriF они вообще плохо годятся: уже 14 величину можно рассмотреть еле-еле лишь на экспозициях под 3 секунды (а то и больше),. . .
И ясному Солнцу
zbw 12.02.2026
И ясному Солнцу, и светлой Луне. В мире покоя нет и люди не могут жить в тишине. А жить им немного лет.
«Знание-Сила»
zbw 12.02.2026
«Знание-Сила» «Время-Деньги» «Деньги -Пуля»
SDL3 для Web (WebAssembly): Подключение Box2D v3, физика и отрисовка коллайдеров
8Observer8 12.02.2026
Содержание блога Box2D - это библиотека для 2D физики для анимаций и игр. С её помощью можно определять были ли коллизии между конкретными объектами и вызывать обработчики событий столкновения. . . .
SDL3 для Web (WebAssembly): Загрузка PNG с прозрачным фоном с помощью SDL_LoadPNG (без SDL3_image)
8Observer8 11.02.2026
Содержание блога Библиотека SDL3 содержит встроенные инструменты для базовой работы с изображениями - без использования библиотеки SDL3_image. Пошагово создадим проект для загрузки изображения. . .
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin
Copyright ©2000 - 2026, CyberForum.ru