I want to allow users to have 1000+ records in my WordPress system.

I was wondering is it best to have just one table for all users and their records or one table per user?

Keep in mind that I could have 1000 users.

A user columns for records would look like:

User_client_name | User_id | User_post_id | etc...

Each user might have 1000+ records in the database of their contacts. If I put all users in one table, I would have to show each of my users their records separated by User_id.

I was wondering is it better to create a new table per new user I signup for? Or stick to one table of users and their records?

  • What do mean by users having records? Are you referring to user_meta?
    – Tim Malone
    Commented May 2, 2016 at 21:23
  • 1
    As long as your hardware keeps up and your queried columns are indexed, you're fine. WordPress has nothing to do with it.. I suggest to watch few tutorials on "database design for beginners" and "database normalization". Other than that, database design and performance is super individual. If you want more precise advice, you would need to reveal all the details - starting with what do you mean by records..
    – N00b
    Commented May 2, 2016 at 21:37
  • @TimMalone No, this is a custom table for a plugin I making.
    – samjco-com
    Commented May 2, 2016 at 22:01
  • @TwerkingN00b I've added more info
    – samjco-com
    Commented May 2, 2016 at 22:07

1 Answer 1


Personaly I would go with one table for all users. Having more tables with the same columns seems like a strange idea to me. The database will be a complete mess after you gwt more users.

Make sure that the user_id is an index for the table and all your select/update/delete will be fine. The insert might have a very short but unsignificant delay after the table gets bigger, but I guess this might not be the most used opperation.


Your Answer

By clicking “Post Your Answer”, you agree to our terms of service and acknowledge you have read our privacy policy.

Not the answer you're looking for? Browse other questions tagged or ask your own question.