我正在使用php& amp;开发一个婚姻网站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:(仅存储在一个表中)
仅在添加所有列的情况下将所有详细信息存储在一个表“用户”中?
哪种CASE最适合在整个网站内轻松处理所有记录?或者还有其他一些最好的方法吗?
答案 0 :(得分:1)
更好地使用 CASE 2 ,因为在婚姻网站中,您可能需要提供如此多的搜索。在educ_career _details表中,通过连接教育主表来存储教育细节。
答案 1 :(得分:0)
这是一个意见问题,可以有很多答案。如果您有总是需要的数据,而其中一些数据需要的频率较低,那么我将数据拆分为多个表格;保持主表中经常访问的数据和支持/元表中访问频率较低的数据。
答案 2 :(得分:0)
案例2更好,但在这种情况下你有几个错误。例如,使用用户信息,我将使用以下规范化:
person (idPerson, name,gender,religion,idUserProfile)
email (idEmail, email, idPerson)
phone (idPhone, phone, idPerson)
userProfile (idUserProfile, userProfile, password)
等等。 ¡请记住确保密码安全!