We listened to your feedback and improved managing Vertabelo team accounts. No more confusing switching back and forth between personal and team accounts. And since Vertabelo is all about modeling, we couldn’t stop ourselves from using database models to explain the upcoming changes.
In the next couple of days we will introduce major changes to the way we handle Vertabelo team accounts. After the changes are implemented, each user account will either be a personal account or be a member of a team account.
What Does This Change Mean?
Today, each user must have a personal account. In addition to the personal account, a user can be a member of a team account. The database models can belong either to a personal account or to a team account. In order to work on the right set of models, you have to switch to the appropriate account first.
We noticed that users find switching back and forth confusing and we decided to simplify the situation.
The upcoming changes do away with the need to have a personal account in addition to a team account.
What Will Happen to Your Models
If you only have a personal account, the changes will not affect you. All of your models will stay in your personal account.
If you have a personal account and you are a member of a team account, your personal account will be removed. From that moment, you will have just one account – your team account.
As for your models, there are two cases:
If all your models are in a team account, your personal account without any models will be removed. All your models will stay in your team account.
If you have some models in your personal account at the moment, you will have to transfer them to your team account. Just follow this instruction:
Models that were in your personal account will no longer be accessible from your Dashboard. Instead, a special screen will allow you to transfer them to the team account, or download for future use. This option will be available only till the end of August. So make sure you transfer your models to the team account or download them before August 31, 2015.
What Will Happen to Your Subscription
- If you only have a personal account subscription, nothing happens to your subscription.
- If you only have a team account subscription, nothing happens to your subscription.
- If you have both a personal account subscription and a team account subscription, your personal account subscription will be cancelled by us. Your team account subscription will stay valid.
The Changes Under the Hood
The new database structure, simplified significantly of course, looks like this:
Each user_account
is associated with at most one account
. There are two account_types
: personal account and team account. An account is the entity responsible for choosing the right account plan and payment for this plan. That’s why the billing_info
is related to the account
table.
Each account
has its own account plan. All existing account plans are kept in the account_plan
table. The current association between the account and its plan is kept in current_account_plan
table.
For comparison, in the old database structure, personal accounts and team accounts (called company accounts in the database) were completely separate.
Let’s start with personal accounts.
All personal account plans were kept in account_plan
table. Each user_account
had its own billing information and its own association with account plan in table current_account_plan
.
The company accounts were a bit more complicated. The company account plans were kept, rather unsurprisingly, in the company_account_plan
table. Each company_account
has their own company_account_billing_info
and its own current_company_account_plan
.
Each user_account
could be a member of multiple company accounts. The association between user_account
and company_account
was kept in the company_account_member
table.
Model Sharing: Before and After
The changes to the accounts also influence the model sharing structure of the database. Sharing information is kept in an association table called model_share
. In the old version it was an association table between
- model
- either a
user_account
orcompany_account_member table
, with suitable constraints, of course.
Company models also had an association with company_account
(a denormalization of the model for efficiency reasons).
Here is the new database:
The models can now be shared between the accounts. Each model share is associated with
- the model, as before
- the
user_account
table.
The association between the model and the account is kept in the model_access
table.
Further Changes in Database Structure
The changes in the account structure propagate to other places of the database. One example is the handling of notifications. You receive Vertabelo notifications when you get invited to share the model, your invitation is accepted, and so on. The notifications are stored in the database.
The new notification is always associated with a user account:
Before, there were separate notifications for events in your personal account and in your team accounts. Each notification could be associated with either a user_account
or company_account_member
.
Similar changes had to be made in all places referencing user account or company account membership.