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