我正在构建一个 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/