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


Связь таблиц (дважды, трижды)


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

#1 Lovent

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

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

Отправлено 06 Сентябрь 2011 - 01:53

Проблема:
Если настраивать три поля типа связь между собой, то первая связка будет работать, а вторая связка работать не будет.


Пример.

У нас есть справочник. В этом справочники записаны 300 различных специалистов. Это одна таблица (таблица 1)

У нас ест клиенты. Каждому клиенту добавляем специалиста. Это другая таблица (таблица 2). Как раз используем первый раз связь.

У нас есть третья таблица: командировки (таблица 3). Данные об исполнителе берутся из таблицы клиенты. Используем второй раз связь.


Получается, что если специалист Семенов в таблице 1 записан 1 раз, но в таблице 2 он фигурирует 15 раз по одному разу у каждого клиента. В таблице три у нас хаос - у нас 15 разных специалистов Семеновых!!!


Фотографии прилагаю.

Замечу, что

1) раньше такой проблемы не было. данные таблицы настроены более года назад.
2) данные проблему решали в течение августа. менеджер Тимур предложил следующее решение: создавать вычисляемые поля, чтобы решить данный вопрос.
3) фильтры не работают

А если у нас несколько десятков таких ситуаций с таблицами и несколько сотен фильтров?
Как нам быть? Можно ли поправить данный баг?


Кто-нибудь еще замечал данную проблему? Быть может, ее как-нибудь обошли?

#2 CbCoder

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

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

Отправлено 06 Сентябрь 2011 - 09:07

Во-первых, это не баг, так и должно быть. В таблице Командировки вы создаете связь с таблицей Клиенты, соответственно и поле связи ссылается на клиента, а не на специалиста. Если вам нужен выбор специалиста, то и связь надо создавать со справочником специалистов, а не с таблицей клиентов. Во-вторых, что значит "раньше такой проблемы не было"? В этом плане ничего не поменялось в программе, так было всегда.

Опишите более конкретно причины такой конфигурации, или оставьте заявку с приложением бэкапа или доступа, в случае веб-версии. В любом случае проблема в вашей неверной настройке, а не в каких-то "багах" программы.

#3 Lovent

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

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

Отправлено 06 Сентябрь 2011 - 10:27

Просмотр сообщенияРазработчик (6.9.2011, 9:07) писал:

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


До поры-до времени такого не было. Можно было делать так, как я описал. Все чудесно работало. Работало где-то до февраля-марта 2011 года, а потом очередная ревизия и вот такой баг.

Если бы это изначально не работало, неужели бы мы спустя чуть больше года начали задавать вопросы? Все прекрасно работало.



Просмотр сообщенияРазработчик (6.9.2011, 9:07) писал:

В таблице Командировки вы создаете связь с таблицей Клиенты, соответственно и поле связи ссылается на клиента, а не на специалиста. Если вам нужен выбор специалиста, то и связь надо создавать со справочником специалистов, а не с таблицей клиентов.

Мы специально не осложняем. Я Вам привел упрощенный пример (опустив много моментов), чтобы показать где этот глюк. Я Вашему менеджеру на протяжении 2-х месяцев пытался это объяснить.

У нас есть потребность "брать" дважды связь. Это нормально, но ПО нормально это не отрабатывает. Это можно поправить?

#4 CbCoder

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

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

Отправлено 06 Сентябрь 2011 - 11:05

Просмотр сообщенияLovent (6.9.2011, 11:27) писал:

До поры-до времени такого не было. Можно было делать так, как я описал. Все чудесно работало. Работало где-то до февраля-марта 2011 года, а потом очередная ревизия и вот такой баг
Как именно то работало? Судя по тому что Вы описали - никакого бага здесь нет, а есть изначально неверно построенная конфигурация. Либо Вы что-то не договариваете, т.е. не до конца описали суть и исполнение задачи.

Просмотр сообщенияLovent (6.9.2011, 11:27) писал:

Мы специально не осложняем. Я Вам привел упрощенный пример (опустив много моментов), чтобы показать где этот глюк
Значит пример неудачен, т.к. я не вижу пока ни одного глюка. Попробуйте более конкретно описать проблему.

Просмотр сообщенияLovent (6.9.2011, 11:27) писал:

У нас есть потребность "брать" дважды связь. Это нормально, но ПО нормально это не отрабатывает. Это можно поправить?
Что значит "дважды брать связь"? Для чего это нужно? Связь не бывает "двойной", она всегда "одинарная", т.е. именно с той таблицей, с которой вы непосредственно ее создали. И это не глюк, это нормально.

Просмотр сообщенияLovent (6.9.2011, 11:27) писал:

Я Вашему менеджеру на протяжении 2-х месяцев пытался это объяснить
К сожалению, я не в курсе, т.к. ко мне с такой проблемой не обращались. Данный менеджер пока в отпуске, будет со следующей недели. Если нет желания повторно расписывать задачу - можно дождаться его.

#5 Lovent

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

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

Отправлено 11 Сентябрь 2011 - 15:13

попробую привести другой пример.


мы для себя создаем справочник по архивам в процессе работы в архивах и с вашим ПО.

Есть матрешка.
В каждом городе есть архивы. В каждом архиве есть фонды. В каждом фонде есть описи. В каждой описи есть дела. В каждом деле есть листы.

Получается, что первая таблица содержит населенные пункты. Вторая таблица - архивы, третья - фонды, четвертая - описи, пятая -дела (до шестой - пока дело не дошло).

Во второй таблице есть архивы. Она первоисточник по архивам.
В третьей таблице заносятся фонды для нужного архива. Идет связь со второй таблицей.
В четвертую таблицу заносятся описи для каждого фонда. Идет связь с третьей таблицей.

поскольку фонды и описи обозначаются числовым значением (фонд 6, фонд 51, опись 136, опись 1) и в каждом архиве могут повторяться, то в четвертой таблице нужно "идти сначала", т.е. выбирать сначала архив, затем выбирать фонды (которые мы внесли в этот архив в третьей таблице), а затем уже вносить описи. вот тут как раз впервые появляется "двойная" связь (поле типа связь с архивом приходится повторять)

#6 CbCoder

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

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

Отправлено 12 Сентябрь 2011 - 09:15

Т.е. речь идет о т.н. зависимых полях связи? ( http://clientbase.ru/forum/index.php?s=&am...post&p=2989 ) Или нет?

#7 CbCoder

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

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

Отправлено 12 Сентябрь 2011 - 14:09

Из-за неполадок в работе форума часть сообщений пропало, попробую восстановить диалог

Цитата

Появляется ли проблема из-за фильтров - я не знаю.

Но без фильтров эта задачка не существует, другими словами, манипуляции с фильтрами происходят, но ОНИ ли приводят к глюку - неизвестно (фильтры - это обязательная составляющая).
Я не спрашивал у вас про причины "глюка", т.к. это наша задача искать их. Имелось ввиду, для чего вам нужны в данном случае "двойные связи" - только для работы зависимых полей связи, или нет? Просто ни для чего другого использовать "двойные связи" смысла нет. Если ответ "да" - тогда примерно понятно о чем идет речь. Эта проблема уже решена в 1.9.5. Там просто не будет необходимости в таких двойных связях.

#8 Lovent

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

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

Отправлено 12 Сентябрь 2011 - 14:52

Просмотр сообщенияРазработчик (12.9.2011, 14:09) писал:

Из-за неполадок в работе форума часть сообщений пропало, попробую восстановить диалог
Я не спрашивал у вас про причины "глюка", т.к. это наша задача искать их. Имелось ввиду, для чего вам нужны в данном случае "двойные связи" - только для работы зависимых полей связи, или нет? Просто ни для чего другого использовать "двойные связи" смысла нет. Если ответ "да" - тогда примерно понятно о чем идет речь.


Ответ "ДА".

Просмотр сообщенияРазработчик (12.9.2011, 14:09) писал:

.... Эта проблема уже решена в 1.9.5. Там просто не будет необходимости в таких двойных связях.

Когда выйдет версия 1.9.5 ?

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

#9 CbCoder

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

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

Отправлено 12 Сентябрь 2011 - 15:46

Ничего переделывать в обязательном порядке при переходах с версии на версию не требуется, все старые функции работают так же и как и работали. Просто появляются новые возможности, идет оптимизация производительности и структуры программы. У вас есть выбор - оставить все как есть, или оптимизировать конфигурацию с использованием нового функционала.

Просмотр сообщенияLovent (12.9.2011, 15:52) писал:

Можете немного рассказать о том, что произошло?
Что значит "произошло"? Старая система с использованием "двойных связей" изначально не оптимальна и поэтому дает подобные проблемы с группировкой. Как я уже сказал, в 1.9.5 необходимости в создании таких связей не будет. Более подробно вы узнаете после выхода версии, все будет описано на примерах.

Просмотр сообщенияLovent (12.9.2011, 15:52) писал:

Когда выйдет версия 1.9.5 ?
Бета - ориентировочно эта/следующая недели.





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

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