Topic: Database designing
Hello, I have one question. I have not enough experience in designing of databases. Help please.
I do now a site of learning of foreign languages. Each registered user has possibility to create lists of words which he wants to learn.
Now I do a database which will store the data about users and about lists, and I was at a deadlock. I consider the worst variant - many users and each user create hundreds lists with thousand words. I see two methods:
1) to use three tables: 1st for data storage about users, 2nd for storage of a name of lists and 3-tja for storage of words in lists (the table of two columns: a word which you want to learn and transfer into a native language)
1st and 2nd is connected one-to-many. It is possible to define so, what lists were created by the certain user
2nd and 3-tja also are connected by the relation one-to-many. Helps to define all words which are in the certain list.
This method simply to implement, but if, for example, there will be 1000 lists and in each list on 5000 words 5000000 words turns out already. And productivity should fall, as I understand. And still, I want to implement possibility for each list a choice of pair languages: studied language and a native language and on mine it will be not so good, if in one table there will be words of different pairs languages.
2) to use set of tables.
First two remain as well as in the first case. And here for each list I think dynamic to create new tables which will be connected one-to-many to 2nd table. The finding situation in one table big an amount of words is in that case eliminated and words of different pairs languages will not mix up. But in that case there will be many tables. I anywhere did not meet such databases and I do not know, whether reasonably to use such method.
Thanks for attention.