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


Удаление связанных записией


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

#1 costas

    Новичок

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

Отправлено 11 Май 2011 - 13:21

Здравствуйте.
Посмотрел Вашу программу (версия 1.9.3), возник вопрос следующего характера:

В программе реализованы связи в виде подчинённых таблиц, при добавлении записей всё чудесно работает, а при удалении записи из головной таблицы, записи в подчинённых таблицах остаются.

Это так задумано разработчиками? Планируется ли в следующих релизах изменение логики работы и приведение в порядок сего дела или есть какое то решение уже сейчас?

#2 CbCoder

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

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

Отправлено 11 Май 2011 - 15:31

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


Опять же возникает вопрос что делать в случае когда вначале были удалены некоторые подчиненные записи, а затем основная. Если при этом удалить и все активные подчиненные записи, то при открытии основной записи в корзине, всплывут все старые подчиненные строки. Если соответственно восстановить потом основную, то все лишние подчиненные записи тоже восстановятся, что совсем ни к чему. Непонятно как отличать одни от других. Текущая схема работает существенно проще.

#3 CbCoder

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

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

Отправлено 11 Май 2011 - 15:38

Просмотр сообщенияcostas (11.5.2011, 14:21) писал:

или есть какое то решение уже сейчас?
Решение есть через замену стандартного удаления на свою кнопку доп.действия, где запрограммировать удаление основной записи вместе с ее подчиненными.

#4 costas

    Новичок

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

Отправлено 12 Май 2011 - 05:57

Скрытые таблицы - неудалённые записи - это мусор со всеми вытекающими...

Просмотр сообщенияРазработчик (11.5.2011, 15:31) писал:

Опять же возникает вопрос что делать в случае когда вначале были удалены некоторые подчиненные записи, а затем основная. Если при этом удалить и все активные подчиненные записи, то при открытии основной записи в корзине, всплывут все старые подчиненные строки. Если соответственно восстановить потом основную, то все лишние подчиненные записи тоже восстановятся, что совсем ни к чему. Непонятно как отличать одни от других. Текущая схема работает существенно проще.
Достаточно ввести новое поле в таблицу в котором будет значение удалена запись через подчинённую таблицу или самостоятельно, а дальше простая проверка этого поля во всех подчинённых таблицах при восстановлении записи из главной таблицы, по этой же логике если запись удалена через главную таблицы то её не возможно восстановить без восстановления записи из главной, тоже самое касается и архива кстати.

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

#5 Analitic

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

  • Пользователи
  • PipPipPip
  • 700 сообщений
  • Пол:Мужчина

Отправлено 12 Май 2011 - 08:36

Ваше предложение логично, внесем в список доработок.

#6 zhilin

    Участник

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

Отправлено 25 Февраль 2014 - 21:16

Ищу решение, смотрю еще 3 года назад запланировали доработку. Как включить при удалении автоматическое удаление записей из связанных таблиц? Спасибо.

#7 CbCoder

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

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

Отправлено 26 Февраль 2014 - 10:25

Можно написать вычисление на событие удаления записи, где и прописать удаление связанных записей.

#8 andibrag

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

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

Отправлено 26 Февраль 2014 - 11:03

Просмотр сообщенияCbCoder (26 Февраль 2014 - 10:25) писал:

Можно написать вычисление на событие удаления записи, где и прописать удаление связанных записей.
вроде бы говорили, что каскадное удаление в ближайших планах

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

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

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


#9 CbCoder

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

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

Отправлено 26 Февраль 2014 - 11:14

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





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

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