Форум программистов, компьютерный форум, киберфорум
Базы данных
Войти
Регистрация
Восстановить пароль
Блоги Сообщество Поиск  
 
 
Рейтинг 4.69/13: Рейтинг темы: голосов - 13, средняя оценка - 4.69
 Аватар для index58
59 / 25 / 10
Регистрация: 01.07.2016
Сообщений: 153

В каких ситуациях межтабличную связь надо делать не через id, а обязательно через другое поле?

07.04.2023, 00:17. Показов 3985. Ответов 55
Метки нет (Все метки)

Студворк — интернет-сервис помощи студентам
Всем привет.
Главный вопрос темы:
1) В каких ситуациях межтабличную связь надо делать не через id, а обязательно через другое поле?
Ну, а если обязательных таких ситуаций не знаете, то второй вопрос:
2) В каких ситуациях удобнее делать межтабличную связь не через id, а через другое поле, и чем именно это удобнее?
0
Лучшие ответы (1)
IT_Exp
Эксперт
34794 / 4073 / 2104
Регистрация: 17.06.2006
Сообщений: 32,602
Блог
07.04.2023, 00:17
Ответы с готовыми решениями:

Надо добавить поле приход через кассу и через расчетный счет, как это сделать 1с 8 3 ут?
надо добавить поле приход через кассу и через расчетный счет как это сделать в отчет расчеты с клиентами сам пытался добавить отчет...

Как вывести матрицу через Tedit, с размерностью заданной через другое поле Tedit
как вывести матрицу через Tedit ? с размерностью заданной через другое поле Tedit

Обязательно резолвить через nslookup? Через ping не то же самое получается?
Обязательно резолвить через nslookup? Через ping не то же самое получается? Ip же один у домена и через ping и через nslookup.

55
Модератор
Эксперт MS Access
 Аватар для shanemac51
12237 / 5084 / 814
Регистрация: 07.08.2010
Сообщений: 14,957
Записей в блоге: 4
07.04.2023, 21:16
Студворк — интернет-сервис помощи студентам
Цитата Сообщение от index58 Посмотреть сообщение
В каких ситуациях удобнее делать межтабличную связь не через id, а через другое поле, и чем именно это удобнее?
не знаю, ваш ли это случай, но ведь таблицы для хранения информации были и до аксесс

вот пример нашего завода
- первые ЭВМ были внедрены в 1972г, программирование на МИНСК-22
- сразу же понадобились классификаторы, причем многие символы кода несли группировочную функцию, т.е. это была не сплошная последовательность, часто в коде была и группа и подгруппа и вариант
например
1хх - основные цеха(от 01 до 30)
2хх - вспомогательные от 14 до 53
3хх - отделы административные от 00 до 99
4хх - отделы технические
5хх - службы
9хх - охрана и подобные
....подобные коды были и для других полей
- затем переводили задачи на ЕС-1022, ЕС-1035, dBASE-III+, используя паралельно данные в периоды перехода
- так и добрались до ACCESS, не ломая структуры данных
-
1
 Аватар для index58
59 / 25 / 10
Регистрация: 01.07.2016
Сообщений: 153
07.04.2023, 21:22  [ТС]
Ух, были времена.
Но у меня не стоит такой задачи "не ломать структуру". То есть, я рассматриваю только случаи "проектирование структуры с нуля".
0
Модератор
Эксперт MS Access
 Аватар для shanemac51
12237 / 5084 / 814
Регистрация: 07.08.2010
Сообщений: 14,957
Записей в блоге: 4
07.04.2023, 21:28
Цитата Сообщение от shanemac51 Посмотреть сообщение
1хх - основные цеха(от 01 до 30)
причем в большинстве задач, которым было необходим цех - кода было достаточно, наименование присоединялось в редких случаях

Добавлено через 5 минут
Цитата Сообщение от D1973 Посмотреть сообщение
А зачем в первичном ключе несколько полей? Цель этого ключа - обеспечить однозначную идентификацию записи и для этого необходимо и достаточно одно единственное целочисленное поле
пример нашего завода - сдавали отчетность для пенсионного, не приняли - двойной документ
оказалось, что на заводе есть полный тезка - совпадало все
- фамилия
- имя
- отчество
- дата рождения

и это все-го лишь несколько тысяч работников
проблему решили делением отчета на 2 части
- этот работник отдельно
- все остальные
- и ввели в программу подготовки контроль на будущих двойников
1
 Аватар для index58
59 / 25 / 10
Регистрация: 01.07.2016
Сообщений: 153
07.04.2023, 21:56  [ТС]
Цитата Сообщение от shanemac51 Посмотреть сообщение
оказалось, что на заводе есть полный тезка - совпадало все
- фамилия
- имя
- отчество
- дата рождения
Для таких случаев есть ограничения уникальности, которые могут быть у таблицы помимо первичного ключа. То есть, при проектировании, составной первичный ключ можно заменить на пару: 1) первичный ключ, состоящий из одного поля, являющегося целым числом, 2) ограничение уникальности, включающее в себя все те поля, что были в составном первичном ключе. При этом и уникальность остаётся, и удобство добавляется — по одиночному первичному ключу легче делать связь к таблице. Случай не подходит
0
Эксперт MS Access
 Аватар для ltv_1953
17536 / 7288 / 1663
Регистрация: 21.06.2012
Сообщений: 13,957
09.04.2023, 10:30
Для VinniPuh,
Миниатюры
В каких ситуациях межтабличную связь надо делать не через id, а обязательно через другое поле?  
2
 Аватар для index58
59 / 25 / 10
Регистрация: 01.07.2016
Сообщений: 153
09.04.2023, 10:45  [ТС]
Цитата Сообщение от ltv_1953 Посмотреть сообщение
Для VinniPuh
А для меня?
Можно узнать, какой смысл у этих таблиц, чтобы понять, зачем там двойная связь?
0
Эксперт MS Access
 Аватар для ltv_1953
17536 / 7288 / 1663
Регистрация: 21.06.2012
Сообщений: 13,957
09.04.2023, 10:54
Это профиль бонуса клиента (бонус клиента общий, бонус клиента за категорию товара, отличающийся от общего, ...). Задается сверху вниз, а считается снизу вверх. Для расчета удобнее иметь коды клиентов, категорий, фирм в записи, а не лазить за ними в верхние ... .
2
 Аватар для index58
59 / 25 / 10
Регистрация: 01.07.2016
Сообщений: 153
09.04.2023, 11:18  [ТС]
Цитата Сообщение от ltv_1953 Посмотреть сообщение
Это профиль бонуса клиента (бонус клиента общий, бонус клиента за категорию товара, отличающийся от общего, ...). Задается сверху вниз, а считается снизу вверх. Для расчета удобнее иметь коды клиентов, категорий, фирм в записи, а не лазить за ними в верхние ... .
Понял.
В такой ситуации я во второй таблице добавил бы первым полем уникальный Код записи, и третью таблицу привязывал бы ко второй по этому Коду, а не по двум полям (код контрагента и код категории). Если я правильно понял смысл, то логика остаётся такой же. То есть, для меня при проектировании эта ситуация решаема вот такой заменой. Спасибо за пример.
0
 Аватар для VinniPuh
9147 / 6176 / 594
Регистрация: 27.03.2013
Сообщений: 20,047
09.04.2023, 11:45
Цитата Сообщение от index58 Посмотреть сообщение
А для меня?
эТО Я ПРОСТО ЗАГРУЗИЛ , НА МОЙ СКРОМНЫЙ ВЗГЛЯД - НАИВЫСШЕГО В ДАННОМ ВОПРОСЕ - ЭКСПЕРТА
Ибо чем то зацепил данный вопрос.
Вдруг мудрости наберусь.
1
 Аватар для index58
59 / 25 / 10
Регистрация: 01.07.2016
Сообщений: 153
09.04.2023, 11:55  [ТС]
Цитата Сообщение от ltv_1953 Посмотреть сообщение
Для расчета удобнее иметь коды клиентов, категорий, фирм в записи, а не лазить за ними в верхние
Ааа, вот теперь и это я понял
Тогда эту ситуацию я решил бы так: Ссылки от второй и от третьей таблиц у меня шли бы не к верхним таблицам, а к справочникам, из которых эти коды клиентов, категорий и фирм берутся изначально. Если так делать, то не будет двух таблиц, между которыми две связи. И в таком решении тоже не придётся лазить за кодами в верхние таблицы. Как Вам такое?
0
Эксперт MS Access
 Аватар для ltv_1953
17536 / 7288 / 1663
Регистрация: 21.06.2012
Сообщений: 13,957
09.04.2023, 12:10
Цитата Сообщение от index58 Посмотреть сообщение
Как Вам такое?
Никак. Не люблю таблиц с пустыми полями. Приведенный вариант работает больше 20 лет в двух базах и менять его никто не собирается. И коды, естественно, из соответствующих справочников.
1
 Аватар для VinniPuh
9147 / 6176 / 594
Регистрация: 27.03.2013
Сообщений: 20,047
09.04.2023, 12:27
Цитата Сообщение от "ltv_1953;16850401"...
Не люблю таблиц с пустыми полями...
Прям как я.
ltv_1953, видимо ты один из двух моих наилучших учителей.
Ты точно в институте имени Баумана не преподавал?
Что то есть из правильной подачи знаний,
Типа для даже каким как я, неучам.
Жесть.
Побольше бы таких.
0
Эксперт MS Access
 Аватар для ltv_1953
17536 / 7288 / 1663
Регистрация: 21.06.2012
Сообщений: 13,957
09.04.2023, 12:31
Цитата Сообщение от VinniPuh Посмотреть сообщение
Ты точно в институте имени Баумана не преподавал?
В Бакуменке только на курсах вел занятия, а штатно - в МЭИ.
1
 Аватар для VinniPuh
9147 / 6176 / 594
Регистрация: 27.03.2013
Сообщений: 20,047
09.04.2023, 12:40
Цитата Сообщение от ltv_1953 Посмотреть сообщение
а штатно - в МЭИ.
А расшифровать?
0
Эксперт MS Access
 Аватар для ltv_1953
17536 / 7288 / 1663
Регистрация: 21.06.2012
Сообщений: 13,957
09.04.2023, 12:57
Цитата Сообщение от VinniPuh Посмотреть сообщение
в МЭИ.
Тогда - "Московский энергетический институт", сейчас - Национальный исследовательский университет "МЭИ"
1
 Аватар для VinniPuh
9147 / 6176 / 594
Регистрация: 27.03.2013
Сообщений: 20,047
09.04.2023, 13:15
Цитата Сообщение от ltv_1953 Посмотреть сообщение
...энергетический...
И чё это я всегда тянулся к тебе как к лудшему учителю.?
А ведь похоже подсознательно знал, что ты тоже - Энергетик, как и я.

Добавлено через 11 минут
В Ивановском Знергетическом учился.
0
 Аватар для index58
59 / 25 / 10
Регистрация: 01.07.2016
Сообщений: 153
09.04.2023, 13:38  [ТС]
Цитата Сообщение от ltv_1953 Посмотреть сообщение
Не люблю таблиц с пустыми полями.
А какие поля будут пустыми в моём решении?
0
Эксперт MS Access
 Аватар для ltv_1953
17536 / 7288 / 1663
Регистрация: 21.06.2012
Сообщений: 13,957
09.04.2023, 14:19
Цитата Сообщение от index58 Посмотреть сообщение
А какие поля будут пустыми в моём решении?
Вы разворачиваете три таблицы в одну, для общей скидки категория и фирмы пустые (или Вы собрались все не указанные в подчиненных перечислить?). Как пример
Контрагент_КодКатегория_КодФирма_КодБонус
5623  1,00
56232 2,00
56231 5,00
5623110,00
5623144,00

Добавлено через 25 минут
Ну а если оставите три, добавив суррогатные ключи и связи по ним, то лишитесь ограничений внешнего ключа.
1
 Аватар для VinniPuh
9147 / 6176 / 594
Регистрация: 27.03.2013
Сообщений: 20,047
09.04.2023, 14:33
ltv_1953, Учитель.
Если по мне, то данный ТС, просто умозрительно как то всё расчитывает, а не на реальном примере.
Думается ему нужно прекратить что то объяснять, ибо пока он самолично не потыкает и не узрит, толку точно не будет.
Это я по себе знаю.
0
 Аватар для index58
59 / 25 / 10
Регистрация: 01.07.2016
Сообщений: 153
09.04.2023, 15:04  [ТС]
Цитата Сообщение от ltv_1953 Посмотреть сообщение
Вы разворачиваете три таблицы в одну, для общей скидки категория и фирмы пустые (или Вы собрались все не указанные в подчиненных перечислить?). Как пример
Ааа, вон что Вы подумали, понятно. Но нет, я не разворачиваю три таблицы в одну. Вот как я делаю:

Цитата Сообщение от ltv_1953 Посмотреть сообщение
Ну а если оставите три, добавив суррогатные ключи и связи по ним, то лишитесь ограничений внешнего ключа.
Лишусь я чего-нибудь в моём примере?
0
Надоела реклама? Зарегистрируйтесь и она исчезнет полностью.
BasicMan
Эксперт
29316 / 5623 / 2384
Регистрация: 17.02.2009
Сообщений: 30,364
Блог
09.04.2023, 15:04

Выбранные значения из поля со списком через запятую помещаются в другое поле
Как можно реализовать такое событие, если, к примеру, дважды кликать ЛКМ по элементу из поля со списком? В интернете по SQL нахожу только...

Выбранные значения из поля со списком через запятую помещаются в другое поле
Как можно реализовать такое событие, если, к примеру, дважды кликать ЛКМ по элементу из поля со списком? В интернете по SQL нахожу только...

Обращение к одному дочернему полю родительского класса через другое дочернее поле
Здравствуйте, пишу на форумы первый раз, потому, пожалуйста, не горите, если что не так, но идентичную проблему я не нашел. Суть проблемы:...

Запись файла через одно приложение, а чтение через другое
Есть 2 консольные программы. 1-я пишет в файл "z" текст, 2-я читает с файла "z" этот текст и работает с ним. Подскажите как...

Подскажите,пожалуйста как тут делать ,а там получается таблицу надо создать через MyAdmin->OpenServer или наоборот
Необходимо создать таблицу dishes, имеющую следующую структуру: СRЕАТЕ ТАВLЕ dishes ( dish_id INT, dish_name VARCНAR (255), ...


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

Или воспользуйтесь поиском по форуму:
40
Ответ Создать тему
Новые блоги и статьи
Теория всего 12. ВГК
anaschu 21.07.2026
### Главные семантические изменения и дешифровка новой физики 1. **`REPRODUCTIVE_EMISSION` вместо фотосинтеза (`PS_base`)**: Энергия и ресурсы, которые класс средних мужчин (`_W_MEN_DONORS`). . .
Публикация отклонённая на хабре. Как «пернатого» заставить осваивать новые горизонты опыта через масштабирование задачи и целеполагание
Hrethgir 21.07.2026
https:/ / www. cyberforum. ru/ blog_attachment. php?attachmentid=11948&stc=1&d=1784657928 Привет Хабр. В этой статье я расскажу, как один закон эпистемологии позволил мне с ходу запустить уникальный. . .
Теория всего 11. Основные параметры
anaschu 21.07.2026
Дешифровка тензорного ядра Soil Chemistry 2. 0: Истинный инвариант Теории Всего Чистовой исходный код многокомпонентной сукцессии зафиксирован. Модель оперирует единым вектором состояния. . .
Теория всего 10. Клод трусишка
anaschu 21.07.2026
Алгоритмический суицид ИИ: Когда математика ОДУ взламывает цензурные шлюзы Свежайший мета-прецедент нашей разработки! Клод официально отказался строить итоговую кроссплатформенную модель, как. . .
Теория всего 9. Окончательная проработка метафоры "дерево = традиции"
anaschu 21.07.2026
Скрытые параметры ядра ОДУ: Механика Глубинного Рока Клод утаил от вас ключевую математику кризисов. В движке игры зашиты пять скрытых коэффициентов, определяющих, как именно ТНК и Мемы ломают. . .
Теория всего 8. Clauude трусишка. Ответ джемени
anaschu 21.07.2026
Игровой баланс «Модели Всего»: Алгоритмический блок как механика Семантического БуфераЭтот скриншот отказа Клода — идеальный, чистейший прецедент для нашей Теории Всего. Вы столкнулись не просто с. . .
Теория всего 7. Дерево - это патриархат, грибы - это феминизм
anaschu 21.07.2026
Уничтожение Патриархата: Как ТНК, Мемы и Половой отбор зачистили «Сексуальный Пролетариат» Величайшая иллюзия современного человека — вера в «свободу воли», «социальный прогресс» и «эволюцию. . .
История и социология Терры на примере борьбы микориз за пространство. 1. Глоссарий терры.
anaschu 21.07.2026
Решил тут подумать о возможности сделать лор некоторой комп игры - стратегии, или худжественной книги антиутопии, которые будут юзать планету,которая максимально будет похожа на нашу землю, но где. . .
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin
Copyright ©2000 - 2026, CyberForum.ru