2 votes

Identifiant unique MySQL sur plusieurs tables

J'ai 2 tables avec la structure suivante :

CREATE  TABLE IF NOT EXISTS `car` (
  `id` INT UNSIGNED NOT NULL AUTO_INCREMENT ,
  `name` VARCHAR(255) NOT NULL ,
  `title` VARCHAR(255) NOT NULL 
  PRIMARY KEY (`id`) ,
  UNIQUE INDEX `name_UNIQUE` (`name` ASC) )
ENGINE = InnoDB;

CREATE  TABLE IF NOT EXISTS `book` (
  `id` INT UNSIGNED NOT NULL AUTO_INCREMENT ,
  `name` VARCHAR(255) NOT NULL ,
  `title` VARCHAR(255) NOT NULL 
  PRIMARY KEY (`id`) ,
  UNIQUE INDEX `name_UNIQUE` (`name` ASC) )
ENGINE = InnoDB;

Je génère la colonne du nom à partir du titre ; par exemple : si le titre : Foo Bar -> nom : foo-bar. J'utilise cette valeur dans l'URL. Auparavant, j'avais des URL comme /car/foo-bar ou /book/foo-bar. Avoir la même valeur de nom dans les deux tables n'était pas un problème. Mais je veux des URLs plus courtes maintenant : /foo-bar ou /foo-bar-2.

Comment faire pour que la valeur du nom soit unique dans plusieurs tables ?

Prograide.com

Prograide est une communauté de développeurs qui cherche à élargir la connaissance de la programmation au-delà de l'anglais.
Pour cela nous avons les plus grands doutes résolus en français et vous pouvez aussi poser vos propres questions ou résoudre celles des autres.

Powered by:

X