лучший способ создать пользовательскую таблицу, когда на ней больше столбцов? MySQL

Я разрабатываю брачный сайт с использованием php & MySQL.

Я хочу выполнить следующие операции фильтров и соответствий после сохранения информации о пользователях:

Matches one user with other users with there : Age / Height , Religion, Mother Tongue, Community, Location, Education, Profession.

and filter by : Age / Height , Religion, Mother Tongue, Community, Location, Education, Profession, Marital Status,Country Living in,Profession Area,Profile Created by,Eating habits,Drinking habits.

У меня большая путаница с таблицей «пользователей»? Я должен хранить много информации о пользователе в моей базе данных, как указано ниже

СЛУЧАЙ 1 : (хранить только в 2 таблицах)

Общие сведения о пользователе — tbl_user :

tbl_user(name, email, user_phone, user_gender, user_dob, user_religion, user_caste, user_living, user_password, profile_created_by)

Дополнительная информация о пользователе — tbl_user_ meta :

содержащий пользователей:

1 базовая информация (семейное положение *, родной язык, привычки в еде * …),

2 Образование & Сведения о карьере (образование *, профессия *…),

3 Данные о местонахождении (страна *, штат, город, гражданство),

4 предпочтения партнера (рост, привычки в еде *, привычки в питье *, привычки в курении *…),

5 О пользователе (* about_you, msg…)

Планирование хранить все эти детали в ‘tbl_user_ meta‘ Таблица ниже :

tbl_user_ meta(user_meta_id,user_id,meta_key,meta_value )

ДЕЛО 2 : (хранить в 6 разных таблицах)

tbl_user(user_id,user_fname...user_verified )

basic_details(user_id, Eating Habits,..)

educ_career_details(user_id, Education , Occupation,..)

location _details(user_id, Country, State, city ,Citizenship)

partner_details(user_id,  Height, Eating_ Habits...)

about_details(user_id,  *about_you, msg…)

ДЕЛО 3: (хранить только в одной таблице)

Хранение всех деталей в одной таблице ‘пользовательТолько с добавлением всех столбцов на нем?

Какой случай лучше всего подходит для обработки всех записей на всем сайте? или есть какой-то другой лучший способ сделать это?

-6

Решение

Лучше использовать ДЕЛО 2 Поскольку на брачном сайте так много поиска, вам может потребоваться предоставить. В таблице educ_career _details хранятся только сведения об образовании путем подключения основной таблицы образования.

1

Другие решения

Это вопрос мнения и может иметь много ответов. Если у вас есть данные, которые всегда нужны, а некоторые из них нужны реже, чем я бы разбил данные на несколько таблиц; хранение часто используемых данных в основной таблице и менее часто используемых данных в таблицах поддержки / мета-таблицах.

0

Это лучший случай 2, но у вас есть несколько ошибок в этом случае. Например, с информацией о пользователе я бы использовал следующую нормализацию:

person (idPerson, name,gender,religion,idUserProfile)
email (idEmail, email, idPerson)
phone (idPhone, phone, idPerson)
userProfile (idUserProfile, userProfile, password)

и так далее.
¡Не забудьте обеспечить безопасность пароля!

0