Я разрабатываю брачный сайт с использованием 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: (хранить только в одной таблице)
Хранение всех деталей в одной таблице ‘пользовательТолько с добавлением всех столбцов на нем?
Какой случай лучше всего подходит для обработки всех записей на всем сайте? или есть какой-то другой лучший способ сделать это?
Лучше использовать ДЕЛО 2 Поскольку на брачном сайте так много поиска, вам может потребоваться предоставить. В таблице educ_career _details хранятся только сведения об образовании путем подключения основной таблицы образования.
Это вопрос мнения и может иметь много ответов. Если у вас есть данные, которые всегда нужны, а некоторые из них нужны реже, чем я бы разбил данные на несколько таблиц; хранение часто используемых данных в основной таблице и менее часто используемых данных в таблицах поддержки / мета-таблицах.
Это лучший случай 2, но у вас есть несколько ошибок в этом случае. Например, с информацией о пользователе я бы использовал следующую нормализацию:
person (idPerson, name,gender,religion,idUserProfile)
email (idEmail, email, idPerson)
phone (idPhone, phone, idPerson)
userProfile (idUserProfile, userProfile, password)
и так далее.
¡Не забудьте обеспечить безопасность пароля!