I am not sure exactly what I should name this question. I just started server-side programming and I need some help.
All the tutorials I have read so far on RoR deal with creating a pre-defined table and with pre-defined fields (id, name, email, etc etc). They use ActiveRecord as base class and saving to db is handled automatically by superclass.
What I am trying to program is something that allows user-defined table with fields. So think of this way. The web UI will have an empty table, the user will name the table, and add columns (field), and after that, add rows, and then later save it. How would I implement this? I am not asking for details, just an overview of it. As I said, all the tutorials I have read so far deal with pre-defined tables with fields where the ActiveRecord subclass is predefined.
So in a nutshell, I am asking, how to create tables in db on runtime, and add fields to the tables.
Hope I was clear, if not, please let me know and i will try to elaborate a bit more.
Thanks.
Unless you’re building a DB administration tool (and even maybe then), allowing the user direct access to the database layer in the way you’re suggesting is probably a bad idea. Apart from issues of stability and security, it’ll get really slow if your users are creating lots of tables.
For instance, if you wanted to search for a certain value across 100 of your users’ tables, you’d have to run 100 separate queries. The site would get exponentially slower the more user tables that were created.
A saner way to do it might be to have a Table model like this
Every table would have fields attached to it, and rows to store the corresponding data (which would be encoded somehow).
However, as @Aditya rightly points out, this is not really beginner stuff!