Аватар для index58
59 / 25 / 10
Регистрация: 01.07.2016
Сообщений: 153

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

07.04.2023, 00:17. Показов 4052. Ответов 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
 Аватар для index58
59 / 25 / 10
Регистрация: 01.07.2016
Сообщений: 153
09.04.2023, 15:09  [ТС]
Студворк — интернет-сервис помощи студентам
Цитата Сообщение от VinniPuh Посмотреть сообщение
умозрительно как то всё расчитывает, а не на реальном примере.
Эту тему я создал, чтобы НАЙТИ реальные примеры других людей, а не показать свои.
0
Эксперт MS Access
 Аватар для ltv_1953
17536 / 7288 / 1663
Регистрация: 21.06.2012
Сообщений: 13,957
09.04.2023, 15:15
Цитата Сообщение от index58 Посмотреть сообщение
Лишусь я чего-нибудь в моём примере?
Типа что такое ограничение внешнего ключа Вы не знаете? В Вашем примере Вы можете изменить категорию в таблице Контрагенты_Бонусы_К, даже если есть подчиненные в таблице Контрагенты_Бонусы_К_Ф (режим каскадного удаление/обновления не включен). Все.
1
 Аватар для index58
59 / 25 / 10
Регистрация: 01.07.2016
Сообщений: 153
09.04.2023, 16:39  [ТС]
Цитата Сообщение от ltv_1953 Посмотреть сообщение
Типа что такое ограничение внешнего ключа Вы не знаете? В Вашем примере Вы можете изменить категорию в таблице Контрагенты_Бонусы_К, даже если есть подчиненные в таблице Контрагенты_Бонусы_К_Ф (режим каскадного удаление/обновления не включен). Все.
То есть, я теряю защиту от дурака в одной связи. Правильно понял?

А если сделать вот так, как я в первый раз предложил на словах, и ещё добавить <представление>, в котором связаны все эти шесть таблиц в одну широкую таблицу, где есть всё, то станет удобно делать SELECT <всё что нужно> FROM <представление>?
0
Эксперт MS Access
 Аватар для ltv_1953
17536 / 7288 / 1663
Регистрация: 21.06.2012
Сообщений: 13,957
09.04.2023, 16:43
Угу. Вы просто допускаете, что к записи с категорией рельсы будет подчиненная гайки, дюймовые. Для Вас это нормально? Тогда вперед ... . Ответов больше не будет - утомили.
0
 Аватар для index58
59 / 25 / 10
Регистрация: 01.07.2016
Сообщений: 153
09.04.2023, 17:16  [ТС]
Цитата Сообщение от ltv_1953 Посмотреть сообщение
Вы просто допускаете, что к записи с категорией рельсы будет подчиненная гайки, дюймовые. Для Вас это нормально?
Я не понял смысл написанного. Я извиняюсь, но для меня пример с рельсами и гайками непонятен.
Цитата Сообщение от ltv_1953 Посмотреть сообщение
Ответов больше не будет - утомили.
Ещё раз извиняюсь. Я ж просто спрашиваю. У меня опыта мало, поэтому я чего-то не понимаю. Я не прикидываюсь, я искренне.
0
 Аватар для VinniPuh
9147 / 6179 / 594
Регистрация: 27.03.2013
Сообщений: 20,048
09.04.2023, 17:44
Сделаю ка я доброе дело.
Понижу репу ТСу.
Ибо аж на 3 страницы ответов и попыток ему помочь,
А он даже ни кому и ни разу не сказал простого - Спасибо.
не говоря уж о такой мелочи как про нажатие кнопки - Спасибо
Только всё больше выдвигает требований к добровольным помогальщикам.
Видимо нужно как у собачки Павлова, вырабатывать условные рефлексы.
Для начала, - Хрясть и - 10% от репы.
0
 Аватар для index58
59 / 25 / 10
Регистрация: 01.07.2016
Сообщений: 153
09.04.2023, 18:12  [ТС]
Кликните здесь для просмотра всего текста
Цитата Сообщение от VinniPuh Посмотреть сообщение
А он даже ни кому и ни разу не сказал простого - Спасибо.
Неправда.
Цитата Сообщение от VinniPuh Посмотреть сообщение
Только всё больше выдвигает требований к добровольным помогальщикам.
Неправда. Ни одного требования с моей стороны здесь нет.
Цитата Сообщение от VinniPuh Посмотреть сообщение
Ибо аж на 3 страницы ответов и попыток ему помочь
Я никого не заставляю мне отвечать. Я создал тему: хотите пишите в ней, хотите не пишите, это Ваш выбор.
0
 Аватар для VinniPuh
9147 / 6179 / 594
Регистрация: 27.03.2013
Сообщений: 20,048
09.04.2023, 18:24
Цитата Сообщение от index58 Посмотреть сообщение
это Ваш выбор.
Согласен.
Если ответственные лица не озаботятся, то -
Уже до вечера исправлю свою оплошность.
Ибо вместо -10% от силы отзыва, нечаянно поставил +10%
Поставлю -100%
0
Модератор
 Аватар для D1973
9952 / 6487 / 2461
Регистрация: 21.01.2014
Сообщений: 27,487
Записей в блоге: 3
09.04.2023, 18:40
Цитата Сообщение от VinniPuh Посмотреть сообщение
Поставлю -100%
Ну зачем уж так лютовать? Не лучше ли оставить ТС-а в покое, просто не реагировать на эту тему?
0
 Аватар для VinniPuh
9147 / 6179 / 594
Регистрация: 27.03.2013
Сообщений: 20,048
09.04.2023, 19:03
Цитата Сообщение от D1973 Посмотреть сообщение
просто не реагировать на эту тему?
Для меня это принципиальный вопрос.
Написал Микаэлю, что бы исправил мою оплошность.
Если ТС не соизволит помолиться всем Богам и + не изменится на минус, то однозначно +10 изменится на -100.
На ТСа столько времени затрачено, столь немыслимо авторитетные личности привлечены в помощь, я даже своей любимой жене столько времени наверное не уделяю.
Ну разве что только 8 марта.
А ТСу всё как то не так.
Даже ни разу ни кому простого - Спасибо не сказал.
Какой ни то мажор наверное.
Привык наверное из за папочкиных денег, что только ему все должны.
Короче расписывать свои мотивы более не буду.
Решение принято.
1
 Аватар для alecko5
885 / 148 / 35
Регистрация: 05.08.2022
Сообщений: 681
12.04.2023, 16:01
Цитата Сообщение от index58 Посмотреть сообщение
1) В каких ситуациях межтабличную связь надо делать не через id, а обязательно через другое поле?
такое случается когда используете EAV, но иерархий не одна а несколько - пример из практики
есть расходники: скобы, стреп-лента, пленка и т.д. - при формировании продукта - это расходники-пленка, расходники-скобы , но у расходников есть еще разделение по группам, поэтому в EAV приходится создавать второе поле, не identity, не Unique даже и по этому полю создавать связь.
1
 Аватар для index58
59 / 25 / 10
Регистрация: 01.07.2016
Сообщений: 153
13.04.2023, 00:58  [ТС]
Цитата Сообщение от alecko5 Посмотреть сообщение
такое случается когда используете EAV, но иерархий не одна а несколько - пример из практики
есть расходники: скобы, стреп-лента, пленка и т.д. - при формировании продукта - это расходники-пленка, расходники-скобы , но у расходников есть еще разделение по группам, поэтому в EAV приходится создавать второе поле, не identity, не Unique даже и по этому полю создавать связь.
А можете привести пример структуры? А то я пробую для себя составить пример, но у меня не получается. Видимо, опыта не хватает представить то, что Вы описали.
0
 Аватар для alecko5
885 / 148 / 35
Регистрация: 05.08.2022
Сообщений: 681
13.04.2023, 09:14
на 1-й скрин из 3-х частей состоит: в1-й общее разделение по группам, а в третьей показано ,что одна группа еще разделена на подгруппы, т.е. введен дополнительный уровень иерархии помимо основной.
на втором скрине - альтернативная иерархия, где у расходников только группы, у остальных - как обычно.
Миниатюры
В каких ситуациях межтабличную связь надо делать не через id, а обязательно через другое поле?   В каких ситуациях межтабличную связь надо делать не через id, а обязательно через другое поле?  
1
 Аватар для index58
59 / 25 / 10
Регистрация: 01.07.2016
Сообщений: 153
13.04.2023, 23:11  [ТС]
Цитата Сообщение от alecko5 Посмотреть сообщение
в1-й общее разделение по группам, а в третьей показано ,что одна группа еще разделена на подгруппы, т.е. введен дополнительный уровень иерархии помимо основной.
Спасибо, посмотрел.
Вот сижу и пытаюсь понять:
В таблице "tblEAV" каждая запись означает группу каких-то материальных штуковин (Продукция, Полуфабрикат, Клей,...).
В таблице "tblHaract" каждая запись означает тоже группу каких-то материальных штуковин (Бумага, Картон, Прокладка,...).
Скажите, пожалуйста, а почему эти группы хранятся в разных таблицах? У них есть какое-то важное отличие, или это просто так исторически сложилось в проекте?
0
 Аватар для alecko5
885 / 148 / 35
Регистрация: 05.08.2022
Сообщений: 681
14.04.2023, 10:43
так сделано специально.
tblEAV - это EAV, в EAV можно вместить вообще все - но это сильно неудобно в части интерфейса, обработки и пр.-в этой таблице все собрано в кучу - настройки, сущности ,единицы измерения, контрагенты, персонал, структура формы для динамического форматирования, сообщения в диалоговых окнах и их заголовки, статусы, параметры экспорта и пр.
tblHaract - это уже плоская таблица, которая расширяет EAV, в ней все по полочкам разложено, в ней есть дополнительные зависимости,(например eizm - единицы измерения, которые хранятся в tblEAV)
она удобна для работы со стороны интерфейса пользователя,
она включает в себе многосправочников сущностей - здесь показаны материальные средства, а есть параметры, характеристики и пр.-у них свой код vid (который очевидно тоже зависим от tblEAV).
в описанном случае создана дополнительная EAV иерархия в tblHaract. для чего был использован не ключ, поскольку ключ уже занят.
1
 Аватар для index58
59 / 25 / 10
Регистрация: 01.07.2016
Сообщений: 153
14.04.2023, 19:30  [ТС]
Цитата Сообщение от alecko5 Посмотреть сообщение
так сделано специально.
Понял. Спасибо.

В целом, мне уже достаточно примеров ситуаций.
Всем спасибо за участие в теме.
Но если у кого-то есть ещё пример, то можно тоже привести, я с удовольствием его рассмотрю.
0
Надоела реклама? Зарегистрируйтесь и она исчезнет полностью.
BasicMan
Эксперт
29316 / 5623 / 2384
Регистрация: 17.02.2009
Сообщений: 30,364
Блог
14.04.2023, 19:30

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

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

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

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

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


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

Или воспользуйтесь поиском по форуму:
56
Ответ Создать тему
Опции темы

Новые блоги и статьи
Был там один разговор по поводу свободы в материальном мире.
kumehtar 19.08.2026
Суть: рассматривается живое существо, оказавшееся внутри довольно странной системы (этого мира) и пытающееся обустроить в ней свой кусок пространства. Жизнь действительно предъявляет каждому. . .
Когда логика программы не спасает от человеческих ошибок
Maks 18.08.2026
В последнее время всё чаще и чаще сталкиваюсь с таким явлением, как абсолютная невнимательность (или глупость) пользователей. Проявляется это чаще всего на работе в коллективе. Допустим, человек с. . .
Лето уходит
kumehtar 17.08.2026
Мысли в слух
kumehtar 17.08.2026
Забавно, насколько сейчас стала доступна информация. Например о магии, духовном развитии, медитациях, и других подобных направлениях, ранее зачастую тайных, передаваемых от учителя к ученику. Хотя. . .
Перемещение строк из ТЧ в другой документ с учетом текущего пробега
Maks 17.08.2026
Реализация из решения ниже выполнена на примере нетипового документа "Автозапчасти", с ТЧ "Шины". За основу взят алгоритм отсюда: https:/ / www. cyberforum. ru/ blogs/ 359708/ 10838. html Задача: . . .
Саморегулирующийся социальный контракт для сервера cross-section.
Hrethgir 14.08.2026
С кодом конечно таких глубоких размышлений пока не было, впрочем я уже привык к алгоритмизации. Суть предмета записи: снова в диалоге с нейросетью (я взял пока себе ник для учётки админа - Rector). . . .
Часы электронные
Uhbif79 12.08.2026
Выкладываю программу часов. Программа позволяет: 1. Использовать системное время и дату, 2. Есть возможность вводить время и дату вручную. 3. Реализованы 2 будильника: начало и конец рабочего дня. . . .
Часы с будильником на основе класса QLCDNumber
Uhbif79 12.08.2026
Всем добрый день, выкладываю программу часов с будильником на основе класса QLCDNumber. Здесь я пробовал самостоятельно создавал классы, впервые столкнулся с видимостью переменной одного класса из. . .
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin
Copyright ©2000 - 2026, CyberForum.ru