Autor Zpráva
jtousek
Profil *
Zdravím,
mám následující problém s MySQL. Mým cílem je tabulka článků, kde bude každý řádek mít více verzí - podle toho dy onen článek kdo změnil, aby změnu mohl schválit admin a aby byl možný návrat či porovnání se starší verzí. Tzn. sloupec, ve kterém bude ID článku nebude mít unikátní hodnoty. Takže si udělám sloupce 2:

CREATE TABLE IF NOT EXISTS `clanky` (
  `key` int(11) unsigned NOT NULL AUTO_INCREMENT,
  `id` int(11) NOT NULL,
  PRIMARY KEY (`key`),
  INDEX (`id`)
) ENGINE=InnoDB DEFAULT CHARSET=utf8 AUTO_INCREMENT=1 ;


Nicméně když přidávám nový článek, potřeboval bych sloupci id hodnotu vygenerovat. Auto_increment nelze bohužel použít na více než jednom sloupci a nerad bych používal nějaké berličky, které by mohli selhat v případě kdy k databázi přistupuje více uživatelů v jeden okamžik.

Děkuji za nápady.
Shadowek
Profil
No pokud to vkládáš přes PHP tak mužeš vytahnout poslední hodnotu , příčíst 1 a uložit do DB...
Ale pokud budeš pokládat jen tak SQL dotazy tak nevím ...
Jan Tvrdík
Profil
jtousek:
Paklliže nechceš, aby ti to selhalo při více uživatelích, pak bys mohl zkusit transakce.
tiso
Profil
jtousek: správne riešenie je použíť 2 tabuľky:
clanky(id, ...)
verzie(id, clanek_id, ...)
jtousek
Profil *
tiso:
Bingo, dík moc. Že mě to sakra nenapadlo... Mi to řešení od začátku přišlo trochu divný.

Vaše odpověď

Mohlo by se hodit


Prosím používejte diakritiku a interpunkci.

Ochrana proti spamu. Napište prosím číslo dvě-sta čtyřicet-sedm:

0