У меня есть много полей, которые многозначны и не знаете, как их хранить? если я делаю 3NF, то есть много таблиц. Например: национальность.
Человек может иметь одно или два гражданства. если двойное, это означает, что это 1 для многих. Поэтому я создаю пользовательскую таблицу и таблицу user_nationality. (таблица соответствия национальности уже есть). или я мог бы поместить обе национальности в один ряд, например «американец, немец», а затем десериализовать их во время выполнения. Но тогда я не знаю, смогу ли я найти это? например, если я буду искать только немецких людей, он появится?
Это пример, у меня более 30 полей, которые многозначны, поэтому я предполагаю, что не буду создавать 61 таблицу для этого? 1 пользовательская таблица, 30 таблиц поиска для хранения поисков каждого многозначного элемента и 30 таблиц для хранения значений user_ для многозначных элементов?
Вы также должны иметь в виду, что некоторые многозначные поля группируются вместе, например, "колледжи, в которых я учился", и имеют группу полей, таких как название колледжа, тип степени, график времени и т. Д. И у пользователя может быть 1 многим из них. Итак, я предполагаю, что могу создать отдельную таблицу для этого, например user_education, с этими полями, но давайте предположим, что одно из этих полей также является фиксированным списком, многозначным, как студенческие городки, которые я посетил, тогда мы окажемся в бесконечной цепочке таблиц FK, которые не очень хороший дизайн для социальных сетей, так как цель состоит в том, чтобы поместить как можно больше данных в как можно меньше таблиц для повышения производительности.