Допустим, у меня есть приложение, в котором пользователи могут «создавать» животных.У животного могут быть различные атрибуты: его цвет, вес, являются ли они дикими и т. Д. Когда я определяю в БД, какие значения может иметь атрибут, у меня возникает проблема:
Table: attributes
+-------------+
| id | name |
+-------------+
| 1 | color |
| 2 | weight |
| 3 | wild |
+-------------+
Table: values
+--------------------------------+
| att_id (fkey) | name (varchar) |
+--------------------------------+
| 1 | brown | ok
| 1 | grey | ok
| 1 | white | ok
| 2 | 300 | <-- not good to put this in a varchar field
| 3 | yes | <-- not good to put this in a varchar field
+--------------------------------+
Как решить эту проблему?Должен ли я создать еще две таблицы для значений int и boolean и установить для каждого атрибута в таблице attributes
, в которой таблица values
, значения для данного атрибута должны быть найдены?Или какой будет правильный дизайн?