我无法决定如何解决以下情况:我有一个users
具有基本属性的表,如id
、username
、email
等,我想记录用户选择的类别。在阅读了关于 SO 的类似问题和广泛的谷歌搜索之后,我想出了几个选项:
a)创建user_categories
包含以下字段的表:
+----+---------+-------+-------+-------+
| id | user_id | sport | music | books |
+----+---------+-------+-------+-------+
| 1 | 123 | 0 | 1 | 1 |
| 2 | 543 | 1 | 0 | 0 |
| 3 | 645 | 1 | 1 | 0 |
+----+---------+-------+-------+-------+
在我的例子中,“类别”(运动、音乐、书籍)只是一个布尔类型——是/否(1/0),它表示用户是否选择了这个类别。此外,这些“类别”中不会超过 20 个(现在在我的设计中我有 12 个 - 它们都不会被删除,只是有可能会添加一些新的(更细粒度的))。
b)创建categories
例如如下所示的表:
+----+----------+
| id | category |
+----+----------+
| 1 | sport |
| 2 | music |
| 3 | books |
+----+----------+
然后user_categories
表格看起来像这样:
+----+---------+-------------+----------------+
| id | user_id | category_id | category_value |
+----+---------+-------------+----------------+
| 1 | 123 | 1 | 0 |
| 2 | 123 | 2 | 1 |
| 3 | 123 | 3 | 1 |
+----+---------+-------------+----------------+
你能告诉我你会用这两个中的哪一个吗?(或者如果我完全错了,你能提出更好的解决方案吗?)