Autor Zpráva
wewer
Profil
dobrý den,
mněl bych takový možná trochu hloupý dotaz ale nemam moc zkušeností a tento problém sem nemohl nikde najít
založím si v tabulce id(INT) s vlastností auto increments takže každý nový řádek má číslo +1 ale problém nastává když nějaký ten řádek vymažu a poté když vložím nový tak bych potřeboval aby ten nový byl +1 s předchozím ale mně tam vzniká mezera například když mezi řádky 15-17 vymažu 16 a poté zase něco vložím potřeboval bych aby to mělo id 16 ale ono to má id 18.
možná to je jen maličkost ale hodně by mi vaše pomoc pomohla. děkuji za odpověď, wewer
juriad
Profil
Některé časteji řešené dotazy pro MySQL - FAQ » Recyklování primárních klíčů smazaných záznamů
Nedělej to.
wewer
Profil
trochu to nechápu nemám používat recyklaci záznamů pomocí id (auto increment) ale jak to teda mám udělat už tu nad tím přemýšlím hodně dlouho a nenapadá mě jak by se to vlastně dalo vyřešit abych tam měl funkci "předchozí/další" a přesto tam nevznikala mezera
juriad
Profil
Některé časteji řešené dotazy pro MySQL - FAQ » Data pro další a předchozí záznam vůči $id, když jsou položky seřazeny podle jiného sloupečku než id
Pokud řadíš podle id, tak se ti ten dotaz trošku zjednoduší.
wewer
Profil
dobrý koukám na to bude mi chvíli trvat než to poberu :D ae aspon že už mám podklady se kterými pracovat díky moc :)
jenikkozak
Profil
Uvědom si, že kdybys chtěl id použít na jednoduché hledání předchozího a dalšího záznamu, musel bys místo vzniklé smazáním záznamu zaplnit okamžitě. Ne až při přidání nové položky. Při každém takovém odstraňování řádku by hrozilo, že si rozbiješ vazbu mezi daty v různých tabulkách.
Další problém, který není fe FAQ zmíněn, je velmi nepříjemné obnovování částečné zálohy databáze. Obtížně budeš zjišťovat, zda se jedná o upravený záznam, nebo o hodnotu, která reprezentuje podobný prvek. I kdyby se data neměnila, při zjišťování, zda se v určité tabulce jedná o reprezentaci téhož prvku, budeš muset prohledávat a porovnávat všechny provázané tabulky či soubory. V průběhu obnovování se ti pár záznamů zase zpřehází…
_es
Profil
wewer:
Akosi si nezdôvodnil, prečo tá „medzera“ vadí. Skôr môže byť prospešná, že je vidno, že bol nejaký záznam zmazaný. Zmazané záznamy si môžeš ukladať do ďalšej tabuľky - možno sa to niekedy bude hodiť.
Pavel Kr.
Profil *
Omlouvám se, nechci zakládat nové téma kvůli takové blbosti, ale mysql se to týká také.

Může se stát, že mi "dojdou" hodnoty id? Sloupec mám nastavený id(int). Jakým číslem to skončí? Dejme tomu, že do tabulky každý den přibude 150 záznamů.
juriad
Profil
http://dev.mysql.com/doc/refman/5.0/en/integer-types.html
2147483647
Vystačí ti to na 39197 let, stačí?

V případě použití BIGINT je to dokonce 168352718520329 let.
Pavel Kr.
Profil *
juriad:
Díky.

Vaše odpověď


Prosím používejte diakritiku a interpunkci.

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