Конференция "Базы" » свойства tIbTransaction [D7, fb2]
 
  • Sergey13 © (22.08.08 08:56) [20]
    > [10] MsGuns ©   (21.08.08 20:31)

    Не надо выдавать свои наработанные приемы работы за всеобщее обязательное правило и вводить неопытных пользователей в заблуждение.
    Коммитить надо НЕ "любой пост", а транзакцию. Транзакция - это модификация БД переводящая эту самую БД из одного СОГЛАСОВАННОГО СОСТОЯНИЯ в другое. Эта модификация может быть как изменением одной записи так переписыванием половины базы.
  • MsGuns © (22.08.08 09:05) [21]
    >Sergey13 ©   (22.08.08 08:56) [20]

    [14] прочитай, а ?

    "Коммитить" относится к посту или транзакции ? Не надо "вводить в заблуждение неопытных пользователей" ;)
  • Sergey13 © (22.08.08 09:16) [22]
    > [21] MsGuns ©   (22.08.08 09:05)
    > [14] прочитай, а ?

    Именно поэтому и написал свои возражения.
    > [14] MsGuns ©   (21.08.08 22:51)
    > Пункт 7.
    > Не противоречит сказанному в [10] ибо любая модификация
    > - добавление - удаление записи в режиме ручной работы с
    > документом должна фиксироваться в БД, иначе возникнет эффект
    > "Я вводила - куда она подевалась ?"

    НЕ любая, а только переводящая документ из одного согласованного состояния в другое согласованное.
  • Игорь Шевченко © (22.08.08 11:02) [23]

    > "Коммитить" надо любой пост, что автоматически и делается,
    >  если асякой фигни не панавыставлять ручками шаловливыми.
    >  А вот сам документ должен иметь статус "проведено", который
    > выставлять по команде пользователя когда он введет весь
    > документ. А до того остатки по карточкам не менять.


    SQL-сервер - эт вам не парадокс. Это вы в файловой базе могете такие приемы использовать. А для большинства SQL-серверов придуманы транзакции, чтобы нужда в изобретении велосипедов отпала
  • Евгений Р. (22.08.08 11:18) [24]
    состояние, как я понял  -  проведен/не проведен?
  • Евгений Р. (22.08.08 11:26) [25]
    И еще:
    наверное параллельно Вы блокируете открытие (или редактирование) документа, открытого одним из пользователей?
    Если да, то каким образом:
    1.у самого документа есть признак "открыт"
    2.есть отдельная таблица с идентификаторами открытых документов
    3.отслеживать блокировки документа (не представляю как)
  • Sergey13 © (22.08.08 12:16) [26]
    > [25] Евгений Р.   (22.08.08 11:26)

    Если мне память не изменяет в ФБ реализовано выражение FOR UPDATE в запросе SELECT. Но злоупотреблять им не стоит и использовать следует с осторожностью.
  • MsGuns © (22.08.08 16:46) [27]
    >Sergey13 ©   (22.08.08 09:16) [22]
    >НЕ любая, а только переводящая документ из одного согласованного состояния в другое согласованное.

    Интересно девки пляшут. Это если в документе 100 строк, то записывать его в базу нужно только тогда, когда все 100 строк будут введены, а если не успел к закрытию конторы, то с утряка по новой, эге ж ?
  • Sergey13 © (22.08.08 16:56) [28]
    > [27] MsGuns ©   (22.08.08 16:46)

    А кто как сделал струтуру БД и приложение - так и делать. Ты же вот делаешь у себя поле "проведено". Это решение для твоего частного случая. Кому то оно не подойдет - ему надо сразу все или ничего. А кому то вообще пофиг - хоть неделю заводи и БД все равно согласованная. Транзакции позволяют работать с любой бизнеслогикой.
  • Игорь Шевченко © (22.08.08 16:57) [29]
    MsGuns ©   (22.08.08 16:46) [27]

    А кому нужен в базе документ с 50-ю строками из 100 ?
  • MsGuns © (22.08.08 17:06) [30]
    >Игорь Шевченко ©   (22.08.08 16:57) [29]
    >А кому нужен в базе документ с 50-ю строками из 100 ?

    А кому нужен документ, который за раз сможет ввести только Анка-пулеметчица, и то за сутки непрерывной работы ?

    Экие вы странные оба однако. Такое ощущение, что с живыми людьми только на улице общаетесь ;)
  • Игорь Шевченко © (22.08.08 18:39) [31]
    MsGuns ©   (22.08.08 17:06) [30]

    Да нет, мы не странные. Просто не стоит свои приемы работы выдавать за непререкаемые истины для всех случаев.
  • MsGuns © (23.08.08 14:46) [32]
    >Игорь Шевченко ©   (22.08.08 18:39) [31]
    >Просто не стоит свои приемы работы выдавать за непререкаемые истины >для всех случаев

    Вот и я о том же ;)
 
Конференция "Базы" » свойства tIbTransaction [D7, fb2]
Есть новые Нет новых   [134473   +28][b:0][p:0]