2014-02-14 6 views
6

Я создаю базу данных для портала. В частности, у меня есть таблица пользователей, содержащая столбцы: id, имя пользователя и пароль.Как создать схему базы данных?

Также существует три типа пользователей: покупателей, продавцов и брокеров, и каждый пользователь имеет отдельную таблицу со столбцами: имя, описание, мобильный, интродуктор и т. Д. В таблице брокера нет колонны ввода-вывода.

Основываясь на этом проекте, я хочу создать двухэтапную регистрационную форму с информацией о первом шаге входа и информацией профиля второго шага.

Теперь бизнес-правила диктуют, что пользователь может быть покупателем, продавцом или брокером. Пользователь может иметь не более одного профиля (покупателя, продавца или брокера). Я хочу, чтобы сохранить регистрационные данные и данные профиля разделены в базе данных

Что я сделал:

Я создал отдельную таблицу для пользователей, брокеров, продавцов и покупателей с идентификатором пользователя в качестве внешнего ключа в покупателей, брокеров и продавцов.

Теперь мой вопрос

  • Как создать таблицы для этой конструкции?
  • Как указать ограничения внешнего ключа?

Я новичок в разработке баз данных, и вся помощь приветствуется. Спасибо заранее.

+1

Что вы пытаетесь? Какой двигатель базы данных вы используете? Что вы подразумеваете под «как создавать таблицы/указывать ограничения внешнего ключа»? Вы имеете в виду концептуальные или синтаксические проблемы? –

+0

Neville K, я использую Mysql engine.I имею концептуальные проблемы относительно того, какие отношения (например: 1: 1 и т. Д.) Существуют между пользователем и таблицами покупателя, продавца и брокера. Я могу справиться с проблемами синтаксиса. – user3309732

ответ

3

Как «пользователь может иметь более одного профиля», это звучит, как вы будете пользоваться, добавив user_profile таблицу, которая затем будет «подтип» по broker, seller и buyer, добавив дополнительные поля, как это применимо.

user бы 1: 1 с user_profile и user_profile будет иметь 1: 0/1 с broker, seller и buyer. Я бы рассмотрел использование user_id в качестве первичного ключа для всех этих.

Я думаю, вы также найдете this ответ полезным.

enter image description here

+0

Не могли бы вы рассказать о своем ответе? – user3309732

+0

@TI Спасибо за ваш ответ. Я думаю, что ваш ответ близок к тому, что я хочу, но к последнему вопросу. Как реализовать отношения «один к одному» между таблицей профилей и брокером, продавцом и покупателем таблица в mysql.Thanks снова – user3309732

Смежные вопросы