ruby-on-rails - 如何建模用户自定义表模型与字段模型的关系

标签 ruby-on-rails postgresql

我正在构建一个 CMS,我想添加的功能之一是用户指定的伪表,让具有足够权限的用户创建表、列、行和字段。显然,出于安全原因让他们实际访问数据库是不明智的,所以我正在考虑创建一个表模型和相关的子模型(列、行、字段)。这是我目前正在查看的架构:

UserTable:
- id:int
- title:string
- :has_many UserColumns
- :has_many UserRows
- :has_many UserFields :through => rows

UserColumn:
- id:int
- table_id:int (foreign key)
- title:string
- type:enum
- :belongs_to UserTable
- :has_many UserFields

UserRow:
- id:int
- table_id:int (foreign key)
- :belongs_to UserTable
- :has_many UserFields

UserField:
- id:int
- row_id:int (foreign key)
- column_id:int (foreign key)
- data:string

我仍然面临的最大问题是 UserTable -> UserField 关系。它看起来可以通过 UserColumn 或通过 UserRow 运行。后者对我来说更直观,所以这就是我目前正在使用的,但如果有充分的理由采用任何一种方式,我想听听。同样,如果有任何我没有看到的关键问题,或者只是一个更简单的方法来处理整个困惑(尽管这似乎相当简单)。

最佳答案

我会使用方案,具体取决于涉及的用户数量。为新用户创建新方案相当容易,然后创建所需的表。

通过完整的方案,您可以非常精细地控制访问,提供简单安全的备份和数据迁移等。

您为什么不首先考虑使用方案?

关于ruby-on-rails - 如何建模用户自定义表模型与字段模型的关系,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/11811632/

相关文章:

postgresql - 当文本为希伯来语时无法构造 PostgreSQL 数组文字

ruby-on-rails - Ubuntu 13.10 上的 rvm 要求错误

ruby-on-rails - 仅当 Rails 中存在另一个变量时才设置变量

node.js - 如何在 node.js 域中添加全局发射器?

sql - 在 Postgres 查询中保留数组成员顺序

ruby-on-rails - 安装pg(0.15.1)时出错,Bundler无法继续

ruby-on-rails - 在 rails 中嵌入 ruby​​ 语法 "<%= .. %>"

ruby-on-rails - 在 DreamHost 上带有 rails 3 应用程序的 internal_error.html

html - 为什么我的网站没有使用我指定的字体?无法访问字体?

postgresql - 将列名称和值的列表传递给 Psycopg