Ownership Model
Before starting development, one important decision to make is how to structure the information storage. The choice depends on the specific use case and the features that are most important to you.
There are two main approaches: creating a separate database for each user or using a single database for all users in the application. This decision will affect how you design your data schema and how databases are created.
The options are:
- One database per organization: this option is suitable when you need information to be verifiable, traceable, and auditable. In this approach, the organization that owns the project also owns the data generated by it. This is similar to traditional web2 databases and is the default mode in our development studio. This is the kind of database used in the examples on the following steps.
- One database per user: this approach prioritizes the ability for users to easily access and control their own data. Each user of the application has their own dedicated database containing their information. Users can grant or revoke access to organizations, allowing them to use their data or add new information to their personal database. This access control is managed through a smart contract. If you choose this option, you will likely create a new database using our API every time a new user is created. You can learn how to do it in the create a database section.
Comparison of features based on the approach:
Text | One DB per user | One DB per organization |
---|---|---|
Portability | Yes | Depends on the implementation. |
Traceable | Yes | Yes |
Verifiable | Yes | Yes |
Data Ownership | Yes | Depends on the implementation. |
Access Control | Managed by each user | Managed by each organization |
Privacy | Yes | Yes |
Last modified 4mo ago