Перейти к содержимому


Что храниться в поле связи подчиненной таблицы?


Сообщений в теме: 17

#1 arsenal

    Активный участник

  • Пользователи
  • PipPipPip
  • 448 сообщений

Отправлено 28 Февраль 2012 - 12:31

В подчиненной таблице в первом поле связи идет ссылка на поле основной записи (в моем случае это "№ договора"). Если я правильно понимаю, то в поле связи храниться ID родительской записи. Т.е если я удалю родительскую запись с данным ID, то подчиненные записи становятся как бы ни к чему не привязанные.
Но вот в чем фишка. Допустим есть родительская запись с полем "№ договора" = "2012/03". По этому полю идет связь с подчиненной таблицей. Я удаляю эту родительскую запись. Потом создаю новую запись с полем "№ договора" = "2012/03", но ID этой записи естественно уже другой. И если перейти в подчиненную таблицу, то видим все подчиненные записи ранее удаленной родительской записи. Т.е. как бы привязка подчиненной таблицы идет не по ID родительской записи, а по значению поля этой записи.
Надеюсь понятно объяснил. Это ошибка или так и должно быть?

#2 CbCoder

    Активный участник

  • Программист ООО "КБ"
  • PipPipPip
  • 8 762 сообщений
  • Пол:Мужчина
  • Город:Казань

Отправлено 28 Февраль 2012 - 13:48

В поле связи действительно хранится ID, но поиск значений в поле связи идет по значению поля. В расширенном поиске это сделано преднамеренно, т.е. что вы ввели руками, то программа и ищет - думаю это логично. Поиск подчиненных записей по нажатию на ссылку в "связанных таблицах" задействует тот же механизм, поэтому и получается тот результат, что вы наблюдали. Это не то чтобы ошибка, скорее недоработка. Тут есть 2 варианта решения: удалять автоматически подчиненные записи при удалении основной (тогда они в том числе не будут таким образом "проявляться"), либо при фильтрации подчиненных записей использовать иной механизм поиска. Проблема нам известна, поэтому она будет через некоторое время решена.

#3 arsenal

    Активный участник

  • Пользователи
  • PipPipPip
  • 448 сообщений

Отправлено 28 Февраль 2012 - 14:21

Понятно, но тогда актуальна другая ошибка, которую так еще и не исправили
http://clientbase.ru...indpost&p=10524

#4 andibrag

    Прежде, чем задать вопрос, продумайте свое решение.

  • Активный пользователь
  • PipPipPip
  • 1 357 сообщений
  • Пол:Мужчина
  • Город:Санкт-Петербург

Отправлено 28 Февраль 2012 - 22:20

Просмотр сообщенияРазработчик (28 Февраль 2012 - 13:48) писал:

В поле связи действительно хранится ID, но поиск значений в поле связи идет по значению поля. В расширенном поиске это сделано преднамеренно, т.е. что вы ввели руками, то программа и ищет - думаю это логично. Поиск подчиненных записей по нажатию на ссылку в "связанных таблицах" задействует тот же механизм, поэтому и получается тот результат, что вы наблюдали. Это не то чтобы ошибка, скорее недоработка. Тут есть 2 варианта решения: удалять автоматически подчиненные записи при удалении основной (тогда они в том числе не будут таким образом "проявляться"), либо при фильтрации подчиненных записей использовать иной механизм поиска. Проблема нам известна, поэтому она будет через некоторое время решена.
Как-то все очень путанно, пару раз натыкался на такое у себя.
Первый вариант скорее всего более правильный - если удалили главную запись, значит, теоретически, связанные с ней данные тоже не нужны. Или есть варианты, когда они могут пригодиться? Хотя в Access есть возможность настраивать этот момент и называется он "каскадное удаление", кажется. Быть может и Вам, на всякий случай, предусмотреть настройку связи.

Творческая группа "ТАВР".

www.TAVR.pro Художественная ковка, металлоконструкции.

www.СтолМет.рф Складные столы, стулья и системы для их хранения


#5 andibrag

    Прежде, чем задать вопрос, продумайте свое решение.

  • Активный пользователь
  • PipPipPip
  • 1 357 сообщений
  • Пол:Мужчина
  • Город:Санкт-Петербург

Отправлено 14 Март 2012 - 08:42

Просматриваю реквизиты клиента. Кликаю на связанную таблицу ( в моем примере Накладная) и получаю:
Поиск: поле "Получатель" равно "127", а не "Получатель" равно "Имя Клиента". Естесственно, что записей с таким отбором она не находит.
Что-то намудрили вы с поиском. Насколько я помню, в предыдущих версиях такой проблемы не было.

Творческая группа "ТАВР".

www.TAVR.pro Художественная ковка, металлоконструкции.

www.СтолМет.рф Складные столы, стулья и системы для их хранения


#6 CbCoder

    Активный участник

  • Программист ООО "КБ"
  • PipPipPip
  • 8 762 сообщений
  • Пол:Мужчина
  • Город:Казань

Отправлено 14 Март 2012 - 09:35

Со связанными намудрили, да. Исправим в ближайшем будущем.

#7 CbCoder

    Активный участник

  • Программист ООО "КБ"
  • PipPipPip
  • 8 762 сообщений
  • Пол:Мужчина
  • Город:Казань

Отправлено 16 Апрель 2012 - 17:50

Просмотр сообщенияCbCoder (14 Март 2012 - 09:35) писал:

Со связанными намудрили, да. Исправим в ближайшем будущем.

Исправили. Теперь при переходе в связанную таблицу поиск идет только по текущей основной записи (т.е. по ее id), о чем дополнительно сообщается в окне поиска.

#8 andibrag

    Прежде, чем задать вопрос, продумайте свое решение.

  • Активный пользователь
  • PipPipPip
  • 1 357 сообщений
  • Пол:Мужчина
  • Город:Санкт-Петербург

Отправлено 24 Май 2012 - 09:32

Пытаюсь отобрать записи по клику на связанную таблицу. В действительности записи есть, но программа ничего не видит. Произошло после обновления. Вносили какие-либо изменения?

Творческая группа "ТАВР".

www.TAVR.pro Художественная ковка, металлоконструкции.

www.СтолМет.рф Складные столы, стулья и системы для их хранения


#9 CbCoder

    Активный участник

  • Программист ООО "КБ"
  • PipPipPip
  • 8 762 сообщений
  • Пол:Мужчина
  • Город:Казань

Отправлено 24 Май 2012 - 10:44

У нас нормально отображается. Пришлите бэкап через заявку, его проверят.

#10 andibrag

    Прежде, чем задать вопрос, продумайте свое решение.

  • Активный пользователь
  • PipPipPip
  • 1 357 сообщений
  • Пол:Мужчина
  • Город:Санкт-Петербург

Отправлено 24 Май 2012 - 11:45

Отправил.
Не работает связка реквизиты-счета, реквизиты-накладная, т.е. из реквизитов клик на связанной таблице ничего не отражает.

Творческая группа "ТАВР".

www.TAVR.pro Художественная ковка, металлоконструкции.

www.СтолМет.рф Складные столы, стулья и системы для их хранения


#11 andibrag

    Прежде, чем задать вопрос, продумайте свое решение.

  • Активный пользователь
  • PipPipPip
  • 1 357 сообщений
  • Пол:Мужчина
  • Город:Санкт-Петербург

Отправлено 24 Май 2012 - 11:55

Уловил проблему: если поле связи завязано на ID - все работает, если на любое другое, например Название организации - не отображает

Творческая группа "ТАВР".

www.TAVR.pro Художественная ковка, металлоконструкции.

www.СтолМет.рф Складные столы, стулья и системы для их хранения


#12 andibrag

    Прежде, чем задать вопрос, продумайте свое решение.

  • Активный пользователь
  • PipPipPip
  • 1 357 сообщений
  • Пол:Мужчина
  • Город:Санкт-Петербург

Отправлено 25 Май 2012 - 10:31

Не смотрели еще? Крайне неудобно отбирать информацию...

Творческая группа "ТАВР".

www.TAVR.pro Художественная ковка, металлоконструкции.

www.СтолМет.рф Складные столы, стулья и системы для их хранения


#13 andibrag

    Прежде, чем задать вопрос, продумайте свое решение.

  • Активный пользователь
  • PipPipPip
  • 1 357 сообщений
  • Пол:Мужчина
  • Город:Санкт-Петербург

Отправлено 29 Май 2012 - 08:58

Проблема оказалась в том, что связь была выполнена на вычисляемое поле. Меняешь на обычное - все в порядке. Тем не менее, не понятно почему не работает, когда фактически отбор происходит по ID записи или как-то иначе?

Творческая группа "ТАВР".

www.TAVR.pro Художественная ковка, металлоконструкции.

www.СтолМет.рф Складные столы, стулья и системы для их хранения


#14 CbCoder

    Активный участник

  • Программист ООО "КБ"
  • PipPipPip
  • 8 762 сообщений
  • Пол:Мужчина
  • Город:Казань

Отправлено 29 Май 2012 - 09:06

Сегодня посмотрим.

#15 CbCoder

    Активный участник

  • Программист ООО "КБ"
  • PipPipPip
  • 8 762 сообщений
  • Пол:Мужчина
  • Город:Казань

Отправлено 30 Май 2012 - 12:03

Ни вычисляемое поле, ни ID здесь не причем. Проблема в том, что поле связи с реквизитами в Счетах и Накладной у вас ссылается тоже на поле связи, с Контрагентом, в самих Реквизитах. Само по себе это допустимо, но проблема возникает, когда в поле связи используются доп.поля (в данном случае - в поле связи с контрагентом), а дело в том, что в настоящее время, как выяснилось, поиск по таким полям связи не вполне корректно работает. Рекомендую вам поменять поле связи с Реквизитам на поле "Название организации", или хотя бы выключить доп.поля. Проблему с поиском мы исправим, но несколько позже, т.к. там довольно большой объем работы.

#16 andibrag

    Прежде, чем задать вопрос, продумайте свое решение.

  • Активный пользователь
  • PipPipPip
  • 1 357 сообщений
  • Пол:Мужчина
  • Город:Санкт-Петербург

Отправлено 30 Май 2012 - 12:42

спасибо
я так и сделал

Творческая группа "ТАВР".

www.TAVR.pro Художественная ковка, металлоконструкции.

www.СтолМет.рф Складные столы, стулья и системы для их хранения


#17 andibrag

    Прежде, чем задать вопрос, продумайте свое решение.

  • Активный пользователь
  • PipPipPip
  • 1 357 сообщений
  • Пол:Мужчина
  • Город:Санкт-Петербург

Отправлено 10 Декабрь 2013 - 16:00

В таблице есть поле Представитель, которое связано с полем в таблице Функции типа Пользователь.
При обращении через $line['Представитель']['raw'] получаю не id пользователя в таблице users, а id записи в таблице Функции. Как получить первоисточник?

Творческая группа "ТАВР".

www.TAVR.pro Художественная ковка, металлоконструкции.

www.СтолМет.рф Складные столы, стулья и системы для их хранения


#18 CbCoder

    Активный участник

  • Программист ООО "КБ"
  • PipPipPip
  • 8 762 сообщений
  • Пол:Мужчина
  • Город:Казань

Отправлено 11 Декабрь 2013 - 09:12

Очевидно, что $line['Представитель']['Поле с типом пользователь'].





Количество пользователей, читающих эту тему: 2

0 пользователей, 2 гостей, 0 анонимных