data structures – How should I design a database where each user can have ten lists with thousands of possible entries?


I am trying to design a database where each user can save up to ten lists of cards. Each list could theoretically have tens of thousands of items, but will likely only have hundreds.

Should I create a new table for each user? I feel like this would make the database really hard to manage.

Alternatively, if I just have one table, it could have 10*number of cards(tens of thousands)*number of users of entries, which could be millions. And if each user is adding to and querying the table very frequently, it seems like that could get very bloated.

Maybe it is obvious, but I am really new to database and relational design, and I need something that could scale to quite a lot of users (likely tens of thousands).

I have looked at several different posts, and the theme I am noticing seems to be to just have one table, but it is likely that this table would have millions of entries, and possibly close to a billion, and it would be queried very frequently.

If there is another way of designing this, besides one table for each user/one table for all users, I haven’t found that either, but I am open to suggestions.