title: What is the best practice for separating app admin and tenant(client) users in SAAS application
body: <p>I am currently working on a SAAS application where a super admin can create clients with their respective client admins and under clients there other users like employees, managers(and so on) which will be created by client_admin. I wanted to know a proper way to separate the clients(with its users) and a super admin.</p>
  <p>Here's my current schema.</p>
  <div class="s-table-container">
  <table class="s-table">
  <thead>
  <tr>
  <th style="text-align: left;">users</th>
  <th style="text-align: left;">role</th>
  <th style="text-align: left;">user_roles</th>
  <th style="text-align: center;">client</th>
  </tr>
  </thead>
  <tbody>
  <tr>
  <td style="text-align: left;">name</td>
  <td style="text-align: left;">id</td>
  <td style="text-align: left;">role_id</td>
  <td style="text-align: center;">id</td>
  </tr>
  <tr>
  <td style="text-align: left;">email</td>
  <td style="text-align: left;">name</td>
  <td style="text-align: left;">user_id</td>
  <td style="text-align: center;">name</td>
  </tr>
  <tr>
  <td style="text-align: left;">password</td>
  <td style="text-align: left;">desc</td>
  <td style="text-align: left;"></td>
  <td style="text-align: center;"></td>
  </tr>
  <tr>
  <td style="text-align: left;">client_id</td>
  <td style="text-align: left;"></td>
  <td style="text-align: left;"></td>
  <td style="text-align: center;"></td>
  </tr>
  </tbody>
  </table>
  </div>
  <p>The current design will have null client_id if the user is a super admin.</p>
  <p>Is it a good idea to have a nullable client_id in the users table?
  Should I create two separate tables for client users and admins?</p>