mysql - 您应该在 RoR 中的什么位置存储大量自定义字符串?

标签 mysql ruby-on-rails ruby-on-rails-3

我有一个门户模型。每个用户都有自己的门户。现在,用户可以在该门户的多个页面上自定义各种字符串,以向他们的客户展示。总体而言,大约有 50 个字符串,普通用户将默认值更改为大约 7 个。

一种方法是每页使用一个表,并将页面的字符串作为列推送到该表,并将这些表映射到门户。但是,这将创建 5 个额外的表、模型和相应的表单管理。此外,这些表将非常稀疏。

有更好的方法吗?

最佳答案

为什么每个页面都有一个单独的表格?条款很可能会跨页面共享,当您向应用程序添加新页面时,您将不得不添加新表格??!!

我的偏好是有一个表,其中“术语”是您的 html 中使用的值,另一个是用户偏好

table user_strings (
  user_id int not null
  term varchar not null
  val varchar not null
  primary key(user_id, term)
  foreign key (user_id) references user(id) on delete cascade
  index (term)
)

如果你没有使用复合主键,那么添加一个默认的id

关于mysql - 您应该在 RoR 中的什么位置存储大量自定义字符串?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/17812125/

相关文章:

php - MySQL 通过数组插入

ruby-on-rails - 运行 Heckle 时出错? `current_code' : undefined method `translate' for Ruby2Ruby

ruby-on-rails - 从助手规范中获取 'action_name' 或 'controller'

jquery - Element.update 不是函数 [Rails 3 + JQuery]

ruby-on-rails - Rails 使用不同的布局?

ruby-on-rails - 从其他 Controller 渲染表单部分

php - 为什么我的准备好的语句不能正常运行?

mysql - 尝试将坐标从 .txt 文件加载到 MySQL 时出错

mysql - JPA,已经持久化的对象给出 "a new object was found through a relationship that was not marked cascade PERSIST"

ruby-on-rails - 如何使用 AASM 避免重复代码?