My website is a job seek site. There are three types of users: User, Employee or Admin. User can search and apply for a job, Employee can post a job, browser resumes, Admin is to manage the site. Here are all the tables that I defined.

Some people say the tables I designed are exactly what I must not do in a relational database because they are full of duplicates. I don't get it. Anyone take a look at my design please?

r937
—
2014-01-29T00:44:09Z —
#2

generalcc said:

Some people say the tables I designed are exactly what I must not do in a relational database because they are full of duplicates. I don't get it.

exactly what you should not do? pshhhh, hyperbole

full of duplicates? yawn

your design is fine

i might use a supertype/subtype structure to "remove" the "duplicate" data, but you'll be okay with what you have

do you know about foreign keys? you should define some

defining foreign keys properly is an exercise requiring rigour but it invariably is worth the effort

p.s. good luck fitting CV data into 80 bytes

GhostGambler
—
2014-02-22T12:50:11Z —
#3

I would merge all three user tables into one table and create e.g. a "type" column. You have to be more careful with your data in this case, but this also offers you more flexibility and potentially saves you some double code work. Just think of logging in a user with your structure: Create three login forms? Or query three tables? I would not want to do either of those.

Nevertheless for your (up till now) little application this might not make a huge difference.