我目前有一个用户表,现在想为特定用户添加其他用户相关信息。接受此信息的表单具有语言和操作系统等字段,每个字段都有一个带有复选框的选项列表。
例如:
已知语言:复选框 PHP、Java、Ruby
操作系统知识:Windows、Linux、Mac
目前我的数据库表如下所示:
USER
----------------------------------------
| ID | Name |
-----------------------
| 1 | John |
-----------------------
| 2 | Alice |
-----------------------
LANGUAGES
----------------------------------------
| ID | User_ID(FK) | lang-name |
----------------------------------------
| 1 | 1 | PHP |
----------------------------------------
| 1 | 2 | Java |
----------------------------------------
OS
----------------------------------------
| ID | User_ID(FK) | os-name |
----------------------------------------
| 1 | 1 | Windows |
----------------------------------------
| 1 | 2 | Windows |
----------------------------------------
这看起来像是一个很好的架构吗?还有更多这样的与用户相关的字段,每个字段都需要有自己的表,并且表中似乎有很多冗余,因为成千上万的用户会知道 PHP,因此将有数千行以 PHP 作为语言对于每个不同的用户。
有没有更好的方法来组织架构?