sql >> Databáze >  >> RDS >> Mysql

jedinečné ID ve více než jedné tabulce [MySQL]

To, co potřebujete, je externě vygenerovaná sekvence a propojit ji s vašimi 2 tabulkami

Měli byste se podívat na to, co vytvořil flickr, podívejte se na tento odkaz:http://code.flickr.com/blog/2010/02/08/ticket-servers-distributed-unique-primary-keys-on-the-cheap/

Vytvoříte tabulku, která generuje id :

CREATE TABLE `Tickets64` (
  `id` bigint(20) unsigned NOT NULL auto_increment,
  `stub` char(1) NOT NULL default '',
  PRIMARY KEY  (`id`),
  UNIQUE KEY `stub` (`stub`)
) ENGINE=MyISAM

a získat nové ID, které vytvoříte takto:

REPLACE INTO Tickets64 (stub) VALUES ('a');
SELECT LAST_INSERT_ID();

Twitter také nedávno vytvořil něco s názvem snowflake, měli byste se podívat do jejich úložiště github

Ale hlavně se podívejte na to, co flickr vyrobil, je jednodušší a lze s ním snadno zacházet



  1. Archiver pozastaven kvůli KOMPATIBILNÍMU ORA-16484

  2. Koncepty Oracle High Availability v PostgreSQL

  3. zpracování chyb transakce mysql

  4. Jak zastavit nebo ovládat značky při kontrole chyb v Microsoft Access