Mysql
 sql >> Database >  >> RDS >> Mysql

ID univoco in più di una tabella [MySQL]

Ciò di cui hai bisogno è una sequenza generata esternamente e collegala alle tue 2 tabelle

Dovresti guardare cosa ha realizzato flickr, guarda questo link:http://code.flickr.com/blog/2010/02/08/ticket-servers-distributed-unique-primary-keys-on-the-cheap/

Crei la tabella che genera l'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

e per ottenere il nuovo ID fai così :

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

Twitter ha anche recentemente creato qualcosa chiamato snowflake, dovresti cercare nel loro repository github

Ma principalmente guarda cosa ha creato flickr, è più semplice e può essere gestito facilmente