sql >> Database >  >> RDS >> Mysql

Best practice voor het opslaan van tags in een database?

Gebruik een veel-op-veel-tabel om een ​​TAG te koppelen opnemen naar een IMAGE opnemen:

BEELD

DROP TABLE IF EXISTS `example`.`image`;
CREATE TABLE  `example`.`image` (
  `image_id` int(10) unsigned NOT NULL auto_increment,
  PRIMARY KEY  (`image_id`)
) ENGINE=InnoDB DEFAULT CHARSET=latin1;

TAG

DROP TABLE IF EXISTS `example`.`tag`;
CREATE TABLE  `example`.`tag` (
 `tag_id` int(10) unsigned NOT NULL auto_increment,
 `description` varchar(45) NOT NULL default '',
 PRIMARY KEY  (`tag_id`)
) ENGINE=InnoDB DEFAULT CHARSET=latin1;

IMAGE_TAG_MAP

DROP TABLE IF EXISTS `example`.`image_tag_map`;
CREATE TABLE  `example`.`image_tag_map` (
 `image_id` int(10) unsigned NOT NULL default '0',
 `tag_id` int(10) unsigned NOT NULL default '0',
 PRIMARY KEY  (`image_id`,`tag_id`),
 KEY `tag_fk` (`tag_id`),
 CONSTRAINT `image_fk` FOREIGN KEY (`image_id`) REFERENCES `image` (`image_id`),
 CONSTRAINT `tag_fk` FOREIGN KEY (`tag_id`) REFERENCES `tag` (`tag_id`)
) ENGINE=InnoDB DEFAULT CHARSET=latin1;


  1. pymysql fetchall() resultaten als woordenboek?

  2. Een door komma's gescheiden lijst converteren naar rijen in SQL Server

  3. Belangrijkste veelvoorkomende problemen met MHA en hoe u ze kunt oplossen

  4. SSIS C# 2012-scripttaak die verwijst naar WinSCPnet.dll mislukt wanneer het wordt uitgevoerd vanuit SQL Server Agent met uitzondering door het doel van een aanroep