Personal_ID (PK), First_Name, Last_Name, Gender, DOB, Address, City, State, Zip, Country, Phone, Photo, Account_ID (FK)
Matching_ID (PK), Headline, Description, Purpose, Relationship_goal, Maritial_Goal, Maritial_Status, No_of_Children, Race, Religion, Primary_Language, Other_Languages, Personal_ID (FK)
Physical_ID (PK), Height, Weight, Body_Build, Hair_Color, Hair_Length,Eye_Color, Health_Status, Disabilities, Personal_ID (FK)
Contact_ID (PK), ICQ_UIN, Homepage_URL, Personal_ID (FK)
Statistic_ID (PK), Hits, Points, Personal_ID (FK)
Detailed_ID (PK), Hobbies, Hangout, Drinking, Smoking,
Education_Level, Occupation, Industry, Monthly_Income,
Private_Messages, Personal_ID (FK)
Photo_ID (PK), Personal_ID (FK), Photo
Verification_ID (PK), Email, Country, Verification_Code, Status
Account_ID (PK), Username, Password, Confirm_Password, Password_Reminder, Email
Error_Log_ID (PK), Description, DateTime
Verification table - Is responsible for storing the verification information. Before a user can sign up to become a member, he/she is required to submit their e-mail add and country info. This information will then be stored in this table together with the verification code generated using a series of algorithm. The status field will be updated with a value if the registration has been
completed, or else it will be set to another value (cancel). An e-mail is send together with a link that contains the query string for e-mail n verication_code.
When the link is clicked, the information parsed as a query string is processed and a form will appear with fields, whereby the user is required to fill in like
account information, etc etc.
Statistic table - The statistic table works simular like how experts exchange assign points(-/+) to each member.
My focus is on the database design itself. I would like to make it as efficient as possible with your help (experts), thru comments, suggestions and etc.
Your help is kindly appreciated.