Sign Up

Sign Up to our social questions and Answers Engine to ask questions, answer people’s questions, and connect with other people.

Have an account? Sign In

Have an account? Sign In Now

Sign In

Login to our social questions & Answers Engine to ask questions answer people’s questions & connect with other people.

Sign Up Here

Forgot Password?

Don't have account, Sign Up Here

Forgot Password

Lost your password? Please enter your email address. You will receive a link and will create a new password via email.

Have an account? Sign In Now

You must login to ask a question.

Forgot Password?

Need An Account, Sign Up Here

Please briefly explain why you feel this question should be reported.

Please briefly explain why you feel this answer should be reported.

Please briefly explain why you feel this user should be reported.

Sign InSign Up

The Archive Base

The Archive Base Logo The Archive Base Logo

The Archive Base Navigation

  • SEARCH
  • Home
  • About Us
  • Blog
  • Contact Us
Search
Ask A Question

Mobile menu

Close
Ask a Question
  • Home
  • Add group
  • Groups page
  • Feed
  • User Profile
  • Communities
  • Questions
    • New Questions
    • Trending Questions
    • Must read Questions
    • Hot Questions
  • Polls
  • Tags
  • Badges
  • Buy Points
  • Users
  • Help
  • Buy Theme
  • SEARCH
Home/ Questions/Q 6105199
In Process

The Archive Base Latest Questions

Editorial Team
  • 0
Editorial Team
Asked: May 23, 20262026-05-23T13:57:06+00:00 2026-05-23T13:57:06+00:00

Currently my users table has the below fields Username Password Name Surname City Address

  • 0

Currently my users table has the below fields

  • Username
  • Password
  • Name
  • Surname
  • City
  • Address
  • Country
  • Region
  • TelNo
  • MobNo
  • Email
  • MembershipExpiry
  • NoOfMembers
  • DOB
  • Gender
  • Blocked
  • UserAttempts
  • BlockTime
  • Disabled
  • I’m not sure if I should put the address fields in another table. I have heard that I will be breaking 3NF if I don’t although I can’t understand why. Can someone please explain?

    • 1 1 Answer
    • 0 Views
    • 0 Followers
    • 0
    Share
    • Facebook
    • Report

    Leave an answer
    Cancel reply

    You must login to add an answer.

    Forgot Password?

    Need An Account, Sign Up Here

    1 Answer

    • Voted
    • Oldest
    • Recent
    • Random
    1. Editorial Team
      Editorial Team
      2026-05-23T13:57:06+00:00Added an answer on May 23, 2026 at 1:57 pm

      There are several points that are definitely not 3NF; and some questionable ones in addition:

      1. Could there could be multiple addresses per user?
      2. Is an address optional or mandatory?
      3. Does the information in City, Country, Region duplicate that in Address?
      4. Could a user have multiple TelNos?
      5. Is a TelNo optional or mandatory?
      6. Could a user have multiple MobNos?
      7. Is a MobNo optional or mandatory?
      8. Could a user have multiple Emails?
      9. Is an Email optional or mandatory?
      10. Is NoOfMembers calculated from the count of users?
      11. Can there be more than one UserAttempts?
      12. Can there be more than one BlockTime per user?

      If the answer to any of these questions is yes, then it indicates a problem with 3NF in that area. The reason for 3NF is to remove duplication of data; to ensure that updates, insertions and deletions leave the data in consistent form; and to minimise the storage of data – in particular there is no need to store data as “not yet known/unknown/null”.

      In addition to the questions asked here, there is also the question of what constitutes the primary key for your table – I would guess it is something to do with user, but name and the other information you give is unlikely to be unique, so will not suffice as a PK. (If you think name plus surname is unique are you suggesting that you will never have more than one John Smith?)

      EDIT:
      In the light of further information that some fields are optional, I would suggest that you separate out the optional fields into different tables, and establish 1-1 links between the new tables and the user table. This link would be established by creating a foreign key in the new table referring to the primary key of the user table. As you say none of the fields can have multiple values then they are unlikely to give you problems at present. If however any of these change, then not splitting them out will give you problems in upgrading the application and the data to support the application. You still need to address the primary key issue.

      • 0
      • Reply
      • Share
        Share
        • Share on Facebook
        • Share on Twitter
        • Share on LinkedIn
        • Share on WhatsApp
        • Report

    Sidebar

    Related Questions

    I have a table users with primary index userId . Currently, each user has
    Currently I have a User table that has a toys_owned column that is an
    I have a table of users with a field birthday (DATE). Currently, I select
    I'm currently designing a comments table for a site I'm building. Users will be
    I currently have a user's table which contains a one-to-one relationship for Youtube OAuth
    Currently I store the user's FirstName and LastName in the USER table, but i
    I currently have the following row in my table: course_data: user_id days <-- This
    I have a table with a auto-incremented primary key: user_id. For a currently theoretical
    I have 3 tables: users (id, name) currency (id, name) accounts (id, user_id, currency_id,
    I am currently using asp.net membership provider and it has several tables as shown

    Explore

    • Home
    • Add group
    • Groups page
    • Communities
    • Questions
      • New Questions
      • Trending Questions
      • Must read Questions
      • Hot Questions
    • Polls
    • Tags
    • Badges
    • Users
    • Help
    • SEARCH

    Footer

    © 2021 The Archive Base. All Rights Reserved
    With Love by The Archive Base

    Insert/edit link

    Enter the destination URL

    Or link to existing content

      No search term specified. Showing recent items. Search or use up and down arrow keys to select an item.