私は CMS を構築しています。追加したい機能の 1 つは、ユーザー指定の疑似テーブルです。これにより、十分な権限を持つユーザーがテーブル、列、行、およびフィールドを作成できるようになります。明らかに、セキュリティ上の理由から、実際にデータベースにアクセスできるようにすることはお勧めできません。そのため、テーブル モデルと関連するサブモデル (列、行、フィールド) の作成を検討しています。私が現在見ているスキーマは次のとおりです。
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
。後者の方が直感的に感じられるので、現在は後者を使用していますが、どちらかを選択する正当な理由がある場合は、それを聞いてみたいと思います. 同様に、私が見ていない重大な問題がある場合、または混乱全体にアプローチするためのより簡単な方法がある場合 (これはかなり単純なようですが)。