Autor Zpráva
Sylar
Profil
Zdravím,
existuje nějaký způsob jak v mysql databázi seřazovat automaticky IDčka jednotlivých položek, např. pokud mám v databázi položky 1 2 3 4 5 a smažu 3ku, aby se mi položky seřadily zpět na 1 2 3 4 a nová položka se vložila opět na pozici 5 ?
Přes několik XML tahám pravidelně (třeba 1x za týden) velké množství položek, které mohou měnit svůj název, popis a všechny další parametry a pokud jedna položka změní všechny své parametry, nemám jak ji spárovat s tou původní položkou v databázi, která už by tam neměla v současnosti být, protože v novém XML není.
Proto bych chtěl všechny položky z databáze, které patří do tohoto XML nejprve smazat a poté všechny položky z nového (updatovaného) XML vložit zpět a nemuset složitě párovat položky a poté je updatovat. Tímto způsobem mi ale za chvíli dojde datový typ - pokud nepoužiju int nebo větší, což mi zase přijde zbytečné.
Alphard
Profil
Int se vám zdá datově náročné? Co tak velkého provozujete? Vzhledem k dalším položkám to bude jistě zanedbatelné.
Při unsigned je max 4294967295, když budete server provozovat 5 let, můžete každý týden obsadit 16519104 pozic.
Jestli to netačí, vemte větší datový typ, vaše snaha není rozumná, viz FAQ.

Abych to upřesnil, jde o stabilitu odkazů, vše smazat a začít znovu taky není rozumné. I po měsíci chci na odkazu najít to, co tam bylo, ne jiný výrobek.
Joker
Profil
Sylar:
Viz FAQ, Recyklování primárních klíčů smazaných záznamů

nemuset složitě párovat položky a poté je updatovat
Tak k čemu to id potom je, když není možné podle něj identifikovat konkrétní záznam (kdyby stejný záznam tam byl vícekrát s různými id a naopak stejné id se přidělovalo postupně různým záznamům)?
Jestli to opravdu nelze spárovat, to se může id rovnou zrušit, dát do tabulky sloupec ve smyslu „pořadí importu“ a udělat primární klíč z něj v kombinaci s něčím, co je unikátní pro záznam v rámci importu. Jestli to ani tak nejde, tak PK „pořadí importu“ + „pořadí záznamu“.
Sylar
Profil
Alphard:
Ohledně té stability odkazů to je trošku jinak, protože pokud produkt v novém xml není, nemá být ani na mém webu, takže na něj ani nemá fungovat odkaz. Je to spíš pro poskytovatele XML, aby si toto ohlídal, já to XML pouze, (kromě jiného) zobrazím.

Joker:
Máš pravdu, že v tuto chvíli je tam asi sloupec ID zbytečný a primární klíč by se dal udělat z jiných sloupců, nicméně časem se může to id hodit a než ho tam pak složitě dávat zpět, je lepší s ním hned počítat.

Oba máte pravdu, "shrnování" IDček je nesmysl, s intem si na chvíli vystačím.
Oběma díky za info a rady.

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: