我有一个网站,需要一个管理员可编辑的整数。它与数据库中的任何其他模型或属性没有关联。它实际上是一个平面整数,介于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语句。