2012-03-06 3 views
2

Я разрабатываю приложение, которое позволит воспитанникам/нянькам найти детей, которым нужно ухаживать, и родителям, чтобы найти нянь, которые будут заботиться о своих детях..Datamodeling, ограничения и проблемы с моей моделью

Я хотел бы иметь один стол базы данных ACCOUNT как для родителей, так и для детей.

Однако, есть некоторые незначительные различия между родительскими счетами и нянями счетов т.е.

  • Нянь могут иметь учебный план/возобновляет прилагаются к их счету (материализованный таблица в RESUME базах данных)
  • нянь счетов являются дополнительно уточняется по статусу ребенка (няня, няня и т. д.) (материализовано таблицей базы данных CHILDMINDER_STATUS). У ребенка может быть один или несколько «статусов ребенка».

Я не уверен, что отношения между ACCOUNT, RESUME и CHILDMINDER_STATUS должен быть ...

P.S. Я использую сервер MySQL.

EDIT: Я забыл упомянуть, что ACCOUNT, принадлежащий ребенку, имеет ноль или более ADVERTISEMENT, которые принадлежат только ребенку. То же самое с ACCOUNTs, принадлежащим родителям вместе с их ADVERTISEMENTs.

+0

Это ответ на ваш вопрос, или у вас есть проблемы? –

ответ

1

Это работает - это отвечает на ваш вопрос? Аналогичным образом последуют другие таблицы.

create table account (
    id int unsigned auto_increment PRIMARY KEY, 
    fname varchar(100), 
    lname varchar(100), 
    type enum('parent','childminder') 
    -- etc - add other fields needed for both parents and childminders 
) ENGINE=InnoDB; 

create table resume (
    id int unsigned auto_increment PRIMARY KEY, 
    account_id int unsigned, 
    file_spec varchar(100), 
    -- other fields as necessary 
    CONSTRAINT `resume_account_id_fk` FOREIGN KEY (`account_id`) REFERENCES `account` (`id`) 
) ENGINE=InnoDB; 

create table childminder_status (
    id int unsigned auto_increment PRIMARY KEY, 
    account_id int unsigned, 
    status_description varchar(100), 
    -- other fields as necessary 
    CONSTRAINT `childminder_status_account_id_fk` FOREIGN KEY (`account_id`) REFERENCES `account` (`id`) 
) ENGINE=InnoDB;