0

我们目前在数据库中维护一组模板。在应用程序中,我们在 UI 中提供了一个下拉列表,以允许用户选择他们想要用来基于该模板创建一封信的模板。因此,我们将显示模板的描述,并在选择时将 templateID 传递给 DB 以检索模板。

现在,我们有了一个新的要求,即从没有 UI 的模板生成一封信来选择模板的类型。我的意思是,应用程序中用户执行操作以调用生成字母的特定点本身用于标识要使用的特定模板。所以,我的问题是我要传递什么来查询数据库以返回存储的模板。我知道我需要使用 templateID。我的问题是每次将模板添加到系统时,都会按顺序生成此 templateID。所以,只有在这个模板被添加到系统后,我才能知道模板ID,然后在调用动作生成信函时使用该模板ID。因此,这意味着模板记录添加到系统后会发生变化。

所以,我的问题是我是否应该在调用字母生成时传递另一个标识符,然后通过拥有一个配置文件将该标识符映射到数据库中生成的序列,并在每次将新模板添加到系统时更新此配置文件。我有没有更好的方法来解决这个问题。

4

1 回答 1

0

听起来你在说你的系统

  • 存储模板,以及
  • 允许用户在运行时创建模板。

而且您在推断运行时创建的模板的模板 ID 号时遇到了麻烦。您似乎知道现有模板的 ID 号。(我可能是错的。)

任何允许您使用序列生成器插入行的 dbms,无论该生成器被称为什么,都将为您提供一种方法来找出它给您的最后一个 id 号。PostgreSQL 是一个通用的、开源的 dbms;它提供了几个这样的功能。一个是 nextval(),它增加序列并返回新值。在多用户环境中是安全的;它总是返回你的新价值,而不是别人的。

您需要查看您的 dbms 文档以了解它提供了哪些功能,以及它们的特性和限制。

于 2012-04-09T13:21:06.017 回答