Skip to main content

How Do I Create an App Where Each User Has A Separate Table

Databases • Asked by Vikram Sharma

Hi,

I want to create a web app which is a simple HR SaaS. Each user/company which registers will have get a separate table to upload list of employees. In terms of autorization a user/company can access only their table.

It is possible/advisible to take this approach in Rails i.e.

  1. A user can create their own table in database
  2. User can modify columns of the database

Thanks for the help.
Regards
Vikram


your SaaS app will have more than one table. Ex. Users table, Employees Table, Org Table. You mean you want a multi-tenant app where each companies data is separate from the others. Few ways to do this:

  1. one db for all your customers but scope via tentant_id or company_id etc
  2. one app but each customer gets their own db instance (expensive)
  3. postgres schema - if you use postgres as your db then you can have one db but separate schemas for each customer.

Gems you can use:

  1. https://github.com/influitive/apartment
  2. https://github.com/ErwinM/acts_as_tenant
  3. https://github.com/jekuno/milia

if you really want to learn how to build this you can also look at the following book: https://leanpub.com/multi-tenancy-rails

OR

check out Chris's video on the apartment gem (search in episodes)


Thanks for the help buddy.


For anyone interested this post talks about how to setup multi-tenancy using uuid's and not subdomains using postgresql.

http://andrewmarkle.com/2016/04/06/multitenancy-with-pundit/


Login or Create An Account to join the conversation.

Subscribe to the newsletter

Join 24,647+ developers who get early access to new screencasts, articles, guides, updates, and more.

    By clicking this button, you agree to the GoRails Terms of Service and Privacy Policy.

    More of a social being? We're also on Twitter and YouTube.