delete
delete

Reputation:

Need a little feedback about my database design, pretty straightforward

I'm going to allow companies to register on my website and create job listings.

I'm currently approaching the problem by creating a Company table with Name, Logo and Password fields. Then when a person registers he can say, "I belong to X company"; at this point, I'll request the password written in by the initial registrator. If she/he enters the correct password then he is given permission to create job postings in the name of the company.

Why I'm doing things this way: If I just put everything inside of the Company table, every new user would have to create an account and I'll have redundant information, CompanyName, Logo, etc.

And if I do things without a password, anyone can post a job opening under a companies name and that's just wrong.

Care to share some input? Am I doing things wrong? How would you do it?

Upvotes: 4

Views: 141

Answers (4)

Jayant Bramhankar
Jayant Bramhankar

Reputation: 378

in my opinion you should create table like

Employers:

     eid(pk)
     logo
     Username
     Password
     profile
     etc....

JobSeekers:

    jid(pk)
    Username
    Password
    etc...

JobPosts:

   id(pk)
   eid(Fk to Employers.eid)
   JobTitle
   Specifications....

Upvotes: 0

Decent Dabbler
Decent Dabbler

Reputation: 22783

You should create two tables:

Company:
 - id
 - logo
 ( - name, etc )

User
 - id
 - companyId (foreign key to Company.id )
 - password
 ( - username, etc. )

This way a User is a child of a Company identified by companyId. Now, if a user logs in, you can identify what company s/he belongs to by finding the Company corresponding with the companyId. Now you have a password per user, and a company per user.

And like Jimmy says, if you need Users to be able to be part of more Company's you would get:

Company
 - id
 - logo

User
 - id
 - password

Company_User
 - companyId (foreign key to Company.id )
 - userId (foreign key to User.id )

Upvotes: 0

Jimmy
Jimmy

Reputation: 91502

Database Normalization.

Create a separate Users and Companies table. Can one user post for multiple companies? if so, you need a many-to-many relationship (which requires a third table to keep track of the relationships). Otherwise, a one-to-many should work.

Upvotes: 3

Franco
Franco

Reputation: 905

I would do "jobs requests" like Facebook's friend requests and if the user really work in that company, the company manager just has to login and confirm it.

Upvotes: 5

Related Questions