Rails:存储一个简单的、不关联的、可管理编辑的值



我有一个网站,需要一个管理员可编辑的整数。它与数据库中的任何其他模型或属性没有关联。它实际上是一个平面整数,介于1-10,000之间,管理员(唯一的用户)需要对其进行编辑。

我的问题与数据库设计有关。当然,最有效的方法不是创建自己的表,只有一列和一行?

简而言之……一个单一的领域,没有关联:我应该如何最好地滚动它?

这取决于你如何定义"有效率"。

如果你定义"高效"为使用

  • 所有用户可编辑数据(数据库)的单一存储机制,
  • 为所有用户可编辑的数据(SQL GRANT和REVOKE)提供单一的安全机制,并且
  • 所有用户可编辑数据(SQL DDL)的单一约束机制,

那么创建一个单行表可能最有效的。在数据库端,类似这样的操作可能会起作用。

create table admin_editable_integer (
  restrictive_key integer primary key,
  the_integer integer not null,
  -- Allow only one row.
  check (restrictive_key = 1),
  -- Restrict the range of integers.
  check (the_integer between 1 and 10000)
);
revoke all on admin_editable_integer from public;
grant select, insert, update on admin_editable_integer to admin;

我不认为rails支持CHECK约束,所以我认为你需要在迁移中传递ALTER TABLE SQL语句。

最新更新