简体   繁体   中英

How to design the database schema?

I am designing the database for a portal.Specifically, I have a users table that contains columns: id, username and password.

Also there are three types of users: buyers, sellers and brokers and each user has a separate table with columns: name, description, mobile,introducer etc.The broker table doesn't have introducer column.

Based on this design I want to create a two step registration form with first step login info and the second step profile info.

Now, the business rules dictate that a user can be a buyer, seller or broker.A user can have at most one profile(buyer, seller or broker). I want to keep the login details and the profile info separate in the database

What I have done:

I have created a separate table for users, brokers, buyers and sellers with user id as foreign key in the buyers , brokers and sellers table.

Now my question is

  • How to create the tables for this design?
  • How to specify the foreign key constraints?

I am new to database designing and all help is appreciated.Thanks in advance.

As "A user can have at most one profile" it sounds like you'll benefit by adding a user_profile table which would then be 'subtyped' by broker , seller and buyer , adding additional fields as applicable.

A user would have a 1:1 with user_profile and user_profile would have 1:0/1 with broker , seller and buyer . I'd consider using the user_id as the primary key to all these.

I think you will also find this answer useful.

在此输入图像描述

The technical post webpages of this site follow the CC BY-SA 4.0 protocol. If you need to reprint, please indicate the site URL or the original address.Any question please contact:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM