powered by simpleCommunicator - 2.0.61     © 2026 Programmizd 02
Целевая тема:
Создать новую тему:
Автор:
Закрыть
Цитировать
Форумы / Проектирование БД [игнор отключен] [закрыт для гостей] / создание элемента справочника с табличной частью
15 сообщений из 15, страница 1 из 1
создание элемента справочника с табличной частью
    #36797493
miha-ha
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
Подскажите как правильно создать элемент справочника с табличной частью?
Справочник организован в виде двух таблиц: элементы шапки HEAD и GRID табличная часть

При появлении формы добавления я создаю запись в табл HEAD, это нужно для того чтобы можно было создавать записи в табличной части

Но если вдруг пользователь передумал создавать эл. справочника то мне нужно удалить запись из HEAD

Есть ли какие-то другие варианты обработки такого вида справочников?

При обычном справочнике: вызвал форму -> ввел данные -> нажал сохранить -> вставил данные в БД

а тут до внесения данных мне уже нужно создать запись , а потом либо обновить её, либо удалить...

Так и нужно действовать или есть другие варианты?
...
Рейтинг: 0 / 0
создание элемента справочника с табличной частью
    #36797531
Фотография Паганель
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
miha-haдо внесения данных мне уже нужно создать записьА давайте так:
1) Юзер вызвал диалог создания нового справочника
2) Юзер ввел в верхней части диалога имя нового справочника (и, возможно, еще какие-то свойства)
3) Юзер ввел в нижней части окна в к.-л. гриде перечень элементов справочника (там есть еще кнопки "добавить/удалить")
4) Юзер нажал кнопку "схранить"
5) И только после этого создалась новая запись в главной таблице и новые записи в подчиненных таблицах

Как Вам такой вариант взаимодействия с юзером?
...
Рейтинг: 0 / 0
создание элемента справочника с табличной частью
    #36797553
miha-ha
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
Паганель,

хороший вариант но дело в том что у меня нет возможности буферизировать данные на клиенте :(
клиент - это форма в браузере...
...
Рейтинг: 0 / 0
создание элемента справочника с табличной частью
    #36797581
Фотография Паганель
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
miha-haклиент - это форма в браузере...И что?
Форма в браузере не может данные содержать?
А как же JavaScript-переменные?
Неужели в JavaScript нет типа данных "массив" (или коллекция) объектов?
...
Рейтинг: 0 / 0
создание элемента справочника с табличной частью
    #36797613
miha-ha
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
Паганельmiha-haклиент - это форма в браузере...И что?
Форма в браузере не может данные содержать?
А как же JavaScript-переменные?
Неужели в JavaScript нет типа данных "массив" (или коллекция) объектов?

Создание хранилища на клиенте в принципе возможно - но не будет ли это усложнением?
Или всё-таки это правильный подход...
...
Рейтинг: 0 / 0
создание элемента справочника с табличной частью
    #36797621
Фотография Паганель
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
miha-haСоздание хранилища на клиенте в принципе возможно - но не будет ли это усложнением?
Или всё-таки это правильный подход...Да, будет усложнением
Да, я считаю что уменьшение количества обращений к БД - это правильный подход

Кроме того, подумайте, что будет,
если при Вашем подходе несколько юзеров начнут справочники редактировать?
Это ж вообще отдельная пестня
...
Рейтинг: 0 / 0
создание элемента справочника с табличной частью
    #36797683
miha-ha
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
Паганель
Кроме того, подумайте, что будет,
если при Вашем подходе несколько юзеров начнут справочники редактировать?
Это ж вообще отдельная пестня

даже и представить боюсь :)
я как-то решал подобную проблему с помощью таблицы блокировок
перед любым изменением нужно сходить и поглядеть не заблокирована ли запись
причем запись блокируется на определенное время - аренда
если запись заблокирована и скрок аренды не истек - то курим. в противном случае редактируем

но не думаю что я буду эту систему применять для справочников... хотя кто-его знает
...
Рейтинг: 0 / 0
создание элемента справочника с табличной частью
    #36797700
Фотография Паганель
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
ну так если данные не добавляются пока не нажато "сохранить"
то другой юзер и не увидит новую запись главной таблицы, ее ж еще нету в базе

а раз не увидит, то и не сможет начать пихать ссылающиеся на нее записи в подчиненную таблицу
...
Рейтинг: 0 / 0
создание элемента справочника с табличной частью
    #36797720
miha-ha
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
Паганель,

предыдущий пост я писал про возможность одновременно редактирования уже добавленного эл справочника

придумываю систему хранения на клиенте...
кстати использую ExtJS случайно не разбираетесь в этой либе?
...
Рейтинг: 0 / 0
создание элемента справочника с табличной частью
    #36797748
Фотография Паганель
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
miha-haвозможность одновременно редактирования уже добавленного эл справочникадля начала выберите стратегию блокирования

miha-haкстати использую ExtJS случайно не разбираетесь в этой либе?нет, я в JavaScript вообще не разбираюсь
у меня с детства аллергия на языки,
в которых в случае опечатки компилятор не скажет мне "переменной с таким именем не существует"

ЗЫ кстати, наверное, надо прекращать, ато сейчас придут модераторы и скажут, что вся эта тема к проектированию БД никак не относится
...
Рейтинг: 0 / 0
создание элемента справочника с табличной частью
    #36797843
miha-ha
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
в итоге:
Выбрал вариант с буферизацией данных на клиенте
Это действительно ТРУ
Спасибо!
...
Рейтинг: 0 / 0
создание элемента справочника с табличной частью
    #36798443
SERG1257
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Правильный ответ (который ТруЪ)
Начать транзакцию
Вставить шапку
Вставить тело
Вставить тело
Обновить или удалить что нибудь.
Коммитить транзакцию.
Если передумал в любом месте, или соединение прервалось - откат.

Другое дело что ваш сервер может не любить длинных транзакций...
...
Рейтинг: 0 / 0
создание элемента справочника с табличной частью
    #36798458
SERG1257
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Кстати с браузером выбор стратегии блокирования легко сужается только для оптимистического.
Вот только пользовательских блокировок (самодельных таблиц и полей) не надо. Вреда от них больше чем пользы.
...
Рейтинг: 0 / 0
создание элемента справочника с табличной частью
    #36803390
miha-ha
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
SERG1257,

не хочеться флеймить, но в чем собственно вред?

как быть если мне необходимо узнать какой пользователь читает запись?
...
Рейтинг: 0 / 0
создание элемента справочника с табличной частью
    #36803484
SERG1257
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
miha-ha как быть если мне необходимо узнать какой пользователь читает запись?
Читает или обновил?
Попробую объяснить - заводим поле - флаг типа занята, так что следующий пользователь не будет пытаться редактировать запись. То есть по сути пытаемся реализовать пессимистическое блокирование. Но между чтением записи (когда мы узнаем что запись блокирована) и записью (когда в сущности это важно) есть промежуток времени во время которого может быть блокировка снята (и мы зря ждали) или наложена (а мы думали что нет)
Чтобы реализовать пессимистическую стратегию надо запретить серверу читать строку если она обновлена.
Другое дело, если вы реализуете блокировку на более высоком уровне - то бишь это мой клиент и все его причиндалы мои, то есть не на уровне строк. Тогда это имеет смысл.
А так советую просто реализовать оптимистическую блокировку - завести поле timestamp и по желанию кто и когда последний обновил строку. Если при обновлении выясняется что timestamp во время чтения не равен во время записи - выводим пользователю ошибку о том что запись была изменена кем и когда.
...
Рейтинг: 0 / 0
15 сообщений из 15, страница 1 из 1
Форумы / Проектирование БД [игнор отключен] [закрыт для гостей] / создание элемента справочника с табличной частью
Найденые пользователи ...
Разблокировать пользователей ...
Читали форум (0):
Пользователи онлайн (0):
x
x
Закрыть


Просмотр
0 / 0
Close
Debug Console [Select Text]