Vydělávej až 160.000 Kč měsíčně! Akreditované rekvalifikační kurzy s garancí práce od 0 Kč. Více informací.
Hledáme nové posily do ITnetwork týmu. Podívej se na volné pozice a přidej se do nejagilnější firmy na trhu - Více informací.
Avatar
archie777
Člen
Avatar
archie777:24.3.2014 18:20

ahoj

chci se optati.. pri mazaní z linqTosql pomoci DeleteonSubmit se mi záznam smaže, ale dalšímu záznamu se přidělí index o číslo vyšší, jam zajistit aby se datábáze "reindexovala" ? aby zkrátka měl nový záznam po smazání záznamu s id 3, taktéž id 3

zaznam 1 id 1
zaznam 2 id 2
zaznam 3 id 2

smazu ted zaznam 3

a nechci aby mel novy zaznam id 4, ale id 3

 
Odpovědět
24.3.2014 18:20
Avatar
Petr Domes (petrds):24.3.2014 19:42

Generuj si ID podle nejvyšší hodnoty ID co je v DB +1

Nyní se ti to ID automaticky generuje(parametr identity). To bude chtít asi zrušit.

Editováno 24.3.2014 19:43
 
Nahoru Odpovědět
24.3.2014 19:42
Avatar
Jan Vargovský
Tvůrce
Avatar
Odpovídá na archie777
Jan Vargovský:24.3.2014 19:49

Todle se vůbec neřeší, prostě máš sekvence nebo automatické IDčka na tabulku a ty se generují, to že tam je mezera je úplně jedno. (možná mě z praxe někdo opraví, jak to doopravdy je, ale projíždět celou tabulku a hledat volné IDčka mi přijde jako hloupost)

 
Nahoru Odpovědět
24.3.2014 19:49
Avatar
Petr Domes (petrds):24.3.2014 19:59

Může se stát, že potřebuješ mít data indexovaná popořadě bez mezer.
"ale projíždět celou tabulku a hledat volné IDčka mi přijde jako hloupost"
Primární klíč je standardně indexován, takže vyhledání nejvyšší hodnoty ID není rozhodně hloupost.

Když by se ale smazal záznam, který není na konci(nejvyšší ID) tak to už je asi blbost hledat volné hodnoty ID.

Editováno 24.3.2014 20:04
 
Nahoru Odpovědět
24.3.2014 19:59
Avatar
archie777
Člen
Avatar
archie777:24.3.2014 20:17

já bych právě tohle potřeboval abych nemusel přepisovat velkou část kodu

potrebuju ty ID ty v db s necim ciselne porovnávat

ale delete záznamu vzdycky udela tu mezeru

potrebuju aby se ID generovalo automaticky, ale mezery to prepocitalo po kazdym submitu treba

jde to nejak rozumně?:D

 
Nahoru Odpovědět
24.3.2014 20:17
Avatar
Odpovídá na archie777
Petr Domes (petrds):24.3.2014 20:49

spíš bych nechal at se ID automaticky generuje a přidal nový sloupec, třeba fakeID a tenhle sloupec bych používal v kódu. Na přepočítání(fakeID) bych asi použil uloženou proceduru, nebo šlo by to i normálně v LINQu napsat. Záleží jak velkou to máš DB, počet přístupů, přidávání dat vs mazání... atd...

 
Nahoru Odpovědět
24.3.2014 20:49
Děláme co je v našich silách, aby byly zdejší diskuze co nejkvalitnější. Proto do nich také mohou přispívat pouze registrovaní členové. Pro zapojení do diskuze se přihlas. Pokud ještě nemáš účet, zaregistruj se, je to zdarma.

Zobrazeno 6 zpráv z 6.