При создании базы данных с пользователями (у которых есть атрибуты, такие как религия), как лучше всего сохранить эти атрибуты и возможные значения для них?
Вот методы и проблемы:
Метод 1. Если у вас есть пользователь, например христианин, вы можете сохранить это значение в таблице пользователей в столбце «Религия». Проблема с этим методом заключается в том, что слово «христианин» будет встречаться в таблице пользователей очень много, что мне кажется избыточным.
проблема 1: Кроме того, при использовании этого метода нигде в базе данных нет места, где хранятся все возможные значения, такие как «Buddhist», «Muslim» и т. д. Это сделало бы заполнение раскрывающегося списка трудным, если не невозможным.
Метод 2: Другой метод, который я придумал, - это индексирование этих значений. Измените столбец «Религия» в таблице пользователей на «Идентификатор религии» и пронумеруйте их. Христианин = 1, Муслим = 2 и т. Д. Затем установите связь по внешнему ключу с другой таблицей со значениями поиска.
Проблема 2: Проблема с этим методом заключается в том, что должно быть много-много таблиц, связанных с таблицей пользователей со значениями внешнего ключа для других аналогичных атрибутов, таких как цвет глаз. Хотя заполнение раскрывающегося списка с помощью этого метода было бы легко, похоже, что это создает слишком много объединений и кажется уродливым способом создания этой базы данных.
Как лучше всего это сделать? Не стесняйтесь придумывать свои собственные методы, если они не оптимальны. Спасибо!