【发布时间】:2015-02-09 21:38:02
【问题描述】:
有 3 个表 User 和 SongList(一对多),1 个用户可以拥有 1 个或多个 songList。子列表(一对多)到 SongList。 SongList 可以是公开的(对所有人可见)、私有的(只有所有者可以查看)和友好的(所有者 + 一些其他用户)。也许对于 SubList 相同(私有,公共 ...)应该是,但现在并不重要。
如何更好地做到这一点?
CREATE TABLE IF NOT EXISTS `mydb`.`user` (
`username` VARCHAR(45) NULL,
`password` VARCHAR(45) NULL,
`id` INT NOT NULL,
PRIMARY KEY (`id`))
ENGINE = InnoDB
CREATE TABLE IF NOT EXISTS `mydb`.`song_list` (
`id` INT NOT NULL AUTO_INCREMENT,
`title` VARCHAR(100) NOT NULL,
`cretaed` DATE NOT NULL,
`updated` DATE NULL,
`user_id` INT NULL,
PRIMARY KEY (`id`),
INDEX `fk_group_user1_idx` (`user_id` ASC),
CONSTRAINT `fk_group_user1`
FOREIGN KEY (`user_id`)
REFERENCES `mydb`.`user` (`id`)
ON DELETE NO ACTION
ON UPDATE NO ACTION)
ENGINE = InnoDB
CREATE TABLE IF NOT EXISTS `mydb`.`subgroup` (
`id` INT NOT NULL AUTO_INCREMENT,
`title` VARCHAR(100) NULL,
`created` DATE NULL,
`updated` DATE NULL,
`song_list_id` INT NOT NULL,
PRIMARY KEY (`id`, `song_list_id`),
INDEX `fk_subgroup_song_list1_idx` (`song_list_id` ASC),
CONSTRAINT `fk_subgroup_song_list1`
FOREIGN KEY (`song_list_id`)
REFERENCES `mydb`.`song_list` (`id`)
ON DELETE NO ACTION
ON UPDATE NO ACTION)
ENGINE = InnoDB
谢谢。
【问题讨论】:
-
你有什么问题?