我正在设计一个应用程序,允许儿童保育员/保姆找到要照顾的婴儿和父母找到照顾他们孩子的儿童保育员/保姆。
我想要一个单独的ACCOUNT数据库表,供家长和儿童看护人员使用。
然而,父母账户和儿童看护账户之间存在一些细微的差异,即。
儿童保育员可以将课程/简历附加到他们的帐户上(由RESUME数据库表具体化)
childminder帐户由childminder状态(保姆、保姆等)进一步细化(由CHILDMINDER_STATUS数据库表具体化)。儿童保育员可以有一个或多个“儿童保育员状态”。
我不确定ACCOUNTRESUMECHILDMINDER_STATUS之间的关系应该是什么。。。
我用的是MySQL服务器。
编辑:
我忘了提到,属于儿童保育员的ACCOUNT只有零个或多个ADVERTISEMENT属于儿童保育员。属于父母的ACCOUNTs和他们的ADVERTISEMENTs也是一样的。

最佳答案

这行得通-能回答你的问题吗?其他的桌子也会跟在后面。

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;

关于mysql - 数据建模,约束和模型问题,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/9582052/

10-14 10:59
查看更多