I am designing a database table. Let's say it's the Color table (Red, Green, Blue) and users will be able to choose from it. But when the user is from another country, I want to display the translation of the fields (eg. in Chinese, 紅, 綠, 藍). I am not sure what is the best and most efficient way to store information like this. I've come up with the following ideas
+----------------------+
| Color |
+----------------------+
| id (PK) |
| Language (PK) |
| name |
+----------------------+
By making id and language as the primary key I can store and find the name of the color.
Or I can do this:
+----------------------+
| Color |
+----------------------+
| id (PK) |
| English |
| Chinese |
+----------------------+
In this way I store the name of the colors in a separate column so each color would correspond to one row only, which seems to be more intuitive.
Or I am thinking should I not store the names of colors in different languages in the database, but store them as String variables in PHP?
I also worry about maintainability of the table as there may be additional colors and languages added to the table in the future.
I would like to hear your suggestions. Thanks!