I'm creating an online dictionary and I have to use three different dictionaries for this purpose: everyday terms, chemical terms, computer terms. I have tree options:
1) Create three different tables, one table for each dictionary
2) Create one table with extra columns, i.e.:
id term dic_1_definition dic_2_definition dic_3_definition
----------------------------------------------------------------------
1 term1 definition
----------------------------------------------------------------------
2 term2 definition
----------------------------------------------------------------------
3 term3 definition
----------------------------------------------------------------------
4 term4 definition
----------------------------------------------------------------------
5 term5 definition definition
----------------------------------------------------------------------
etc.
3) Create one table with an extra "tag" column and tag all my terms depending on it's dictionary, i.e.:
id term definition tag
------------------------------------
1 term1 definition dic_1
2 term2 definition dic_2
3 term3 definition dic_3
4 term4 definition dic_2
5 term1 definition dic_2
etc.
A term can be related to one or more dictionaries, but have different definitions, let's say a term in everyday use can differ from the same term in IT field. That's why term1 (in my last) table can be assigned two tags - dic_1
(id 1) and dic_2
(id 5).
In future I'll add more dictionaries, so there probably will be more than three dics. I think if I'll use option 2 (with extra columns) I'll get in future one table and many many columns. I don't know if it's bad for performance or not.
Which option is the best approach in my case? Which one is faster? Why? Any suggestions and other options are greatly appreciated.
Thank you.