I am developing a site which will contain user projects, basically a bunch of user data:
– Projects
– Templates
– Invoices
– etc
Users can have multiple projects etc.
I would like to know the best route to contain this data, I originally though of having the user_id and project_id in the tables e.g:
Projects:
User Id,
Project Id,
..,
..,
Project Settings:
User Id,
Project Id,
Settings Id,
…,
…,
I am thinking that this may not be the best way to do this for security, performance and scalability.
I am happy keeping the WordPress main database as MySQL and was thinking of maybe an object database for the user project data.
The wp database abstraction is essentially non-swappable and the API consists of random global functions. If you plan on using wp for the presentation layer in your project my advice is to build the back-end for your data completely decoupled from wpdb.
Look for pdo and sqlite integrations in the public plugin repo. Notice how the entry point is implemented. If that does not scare you, have a look at the usermeta functions.