Closed. This question needs details or clarity。它当前不接受答案。
                            
                        
                    
                
                            
                                
                
                        
                            
                        
                    
                        
                            想改善这个问题吗?添加详细信息并通过editing this post阐明问题。
                        
                        4年前关闭。
                                                                                            
                
        
有3个表User和SongList(一对多),一个用户可以有1个或更多songList。 SubList(一对多)到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


谢谢。

最佳答案

只需直接对其建模。添加另一个表,例如
AccessType (AccessTypeID int, AccessTypeName varchar(200))
在此处插入记录,例如1个公共,2个私有等,然后在您的表中
SongList和SubSongList添加AccessTypeID列和
使它们成为指向AccessType表的外键(FK)。
诸如AccessType之类的表通常称为查找表。

关于mysql - 创建具有描述属性的表以访问歌曲列表,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/28419885/

10-12 14:00