Обновление таблиц, связанных отношением многие-ко-многим

Smocker1975
Дата: 29.07.2005 11:39:26
Есть одно отношение многие ко многим: две родительские таблицы и одна связующая (она же дочерняя).
Есть интерфейс позволяющий вносить любые изменения:
добавлять, удалять, модифицировать строки родительских таблиц (при этом если надо то меняются соответствующие строки в дочерней таблице)
и производить те же действия в дочерней таблице.

Проблема вот в чем: нужно обеспечить корректную обработку ошибок совместного доступа (так называемый оптимистический параллелизм)

Если бы дело шло только об одной таблице, то нет проблем, спрашиваем у пользователя, какое значение он хочет принять: свое или то, что в базе.
А как быть с тремя таблицами, которые связаны между собой двумя отношениями (Relation). Например я меняю какие-то поля в дочерней таблице, а в это время в базе кто-то удалил одну из родительских строк (! при этом удаляются все дочерние строки) а я эти самые дочерние строки редактировал, и при попытке обновления обнаруживаю ошибки. Как грамотно разобрать все эти ошибки.

Может кто подскажет алгоритм разбора подобных ситуаций, и как при этом строить интерфейс пользователя (интересуют конкретные примеры).
Sa
Дата: 29.07.2005 16:08:33

Может кто подскажет алгоритм разбора подобных ситуаций

конкретного универсального алгоритма в такой ситуации быть не может.
У вас как у разработчика должен быть Use Case операции сохранения, где оговорен альтернативный вариант развития ситуации подобным образом, и должно быть прописано как на него должна реагировать ВАШАсистема.

uid = Sa

Posted via ActualForum NNTP Server 1.2

Smocker1975
Дата: 01.08.2005 18:00:10
Sa

Может кто подскажет алгоритм разбора подобных ситуаций

конкретного универсального алгоритма в такой ситуации быть не может.
У вас как у разработчика должен быть Use Case операции сохранения, где оговорен альтернативный вариант развития ситуации подобным образом, и должно быть прописано как на него должна реагировать ВАШАсистема.

uid = Sa
Posted via ActualForum NNTP Server 1.2


Под UseCase вы подразумеваете интерфейс пользователя, в котором он может выбрать какие данные сохранить в базе (исходные, текущие, и те что в базе)?
Sa
Дата: 02.08.2005 06:25:55


Под UseCase вы подразумеваете интерфейс пользователя, в котором он может выбрать
какие данные сохранить в базе (исходные, текущие, и те что в базе)?

Я говорю в терминах UML...
Grady Booch and ..., Язык UML Руководство пользователя

Прецедент (Use case, вариант использования, ВИ, UC) - это описание последовательности выполняемых системой действий, которая производит наблюдаемый результат,значимый для какого-то определенного актера (Actor). Прецедент применяется для структурирования поведенческих сущностей модели.

Прецедент (Use case) специфицирует поведение системы или ее части и представляет собой описание множества последовательностей действий (включая варианты), выполняемых системой для того, чтобы актер мог получить определенный результат.

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

uid = Sa

Posted via ActualForum NNTP Server 1.2

Smocker1975
Дата: 05.08.2005 12:47:18
Однако.

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