Использование идентификатора, сгенерированного последовательностью, или альтернативный способ запроса БД - PullRequest
0 голосов
/ 30 марта 2012

В настоящее время мы поддерживаем набор шаблонов в БД.В приложении мы предоставляем раскрывающийся список в пользовательском интерфейсе, чтобы позволить пользователю выбрать шаблон, который он хочет использовать для создания письма на основе этого шаблона.Итак, мы показываем описание шаблона и, когда он выбран, мы передаем templateID в БД для извлечения шаблона.

Теперь у нас есть новое требование генерировать письмо из шаблона без UI для выборатип шаблона.Я имею в виду, что конкретная точка в приложении, из которой пользователь выполняет действие по вызову, генерирует само письмо, служит для идентификации конкретного шаблона для использования.Итак, мой вопрос заключается в том, что я передаю, чтобы запросить БД для возврата сохраненного шаблона.Я знаю, что мне нужно использовать templateID.Мой вопрос: этот templateID генерируется последовательностью каждый раз, когда шаблон добавляется в систему.Таким образом, только после того, как этот шаблон был добавлен в систему, я могу знать templateID и затем использовать этот templateID при вызове действия для генерации письма.Таким образом, это будет означать изменение после добавления записи шаблона в систему.Это может включать изменение кода или, если не изменение файла конфигурации, для сопоставления сгенерированного идентификатора последовательности с шаблоном, как того требует приложение.

Итак, мой вопрос заключается в том, должен ли я передавать anotherIdentifier при вызове генерации письма изатем сопоставьте этот идентификатор последовательности, сгенерированной в БД, с помощью файла конфигурации, и обновляйте этот файл конфигурации каждый раз, когда в систему добавляется новый шаблон.Есть ли лучший способ для меня подойти к этому вопросу.

1 Ответ

0 голосов
/ 09 апреля 2012

Похоже, вы говорите, что ваша система

  • сохраняет шаблоны, а также
  • позволяет пользователям создавать шаблоны во время выполнения.

И у вас возникли проблемы с определением идентификационного номера шаблона для шаблонов, созданных во время выполнения.Вы, кажется, знаете номера идентификаторов существующих шаблонов.(Я могу ошибаться.)

Любые дбм, которые позволяют вставлять строки с использованием генератора последовательностей, независимо от того, как вызывается этот генератор, также предоставят вам возможность узнать последний номер идентификатора, который он вам дал,PostgreSQL - это обычная база данных с открытым исходным кодом;он предоставляет несколько таких функций.Одним из них является nextval (), который увеличивает последовательность и возвращает новое значение.Это безопасно в многопользовательской среде;он всегда возвращает ваше новое значение, а не чье-либо еще.

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

...