np. mamy tabele z polem ID autoinkrementującym dodajemy do tabeli 5 rekordów(mają one kolejne numery Id 1,2,3,4,5) po czym je usuwamy. Dodajemy jeden rekord (pole ID ma wartość 6 a w tabeli jest jeden rekord). Usuwamy go(tabela jest pusta) i resetujemy komputer ....
Po restarcie serwera dodajemy jeden rekord i jego ID ma wartość 1 zamiast 7 , gdybyśmy nie zresetowali komputer to wartość była by normalnie 7.
Serwer to MySQL 4.1.7
Jakieś pomysły ?
tabela
CREATE TABLE `produkty` (
`produkt_id` int(10) unsigned NOT NULL auto_increment,
`kategoria_id` int(10) unsigned NOT NULL default '0',
`obrazek` varchar(25) NOT NULL default '',
`miniaturka` varchar(25) NOT NULL default '',
`nazwa_produktu` varchar(40) NOT NULL default '',
`producent` varchar(20) NOT NULL default '',
`skala` varchar(6) NOT NULL default '',
`opis` text NOT NULL,
`ilosc` int(10) unsigned NOT NULL default '0',
`cena` float(6,2) NOT NULL default '0.00',
`data_dodania` datetime NOT NULL default '0000-00-00 00:00:00',
PRIMARY KEY (`produkt_id`),
KEY `kategoria_id` (`kategoria_id`)
)
druga tabela to produkty zamowione
CREATE TABLE `produkty_zamowione` (
`zamowienie_id` int(10) unsigned NOT NULL default '0',
`produkt_id` int(10) unsigned NOT NULL default '0',
`nazwa_produktu` char(40) NOT NULL default '',
`producent` char(20) NOT NULL default '',
`skala` char(6) NOT NULL default '',
`ilosc` int(10) unsigned NOT NULL default '0',
`cena_zakupu` float(6,2) NOT NULL default '0.00',
KEY `zamowienie_id` (`zamowienie_id`)
) ENGINE=InnoDB DEFAULT CHARSET=latin1;
Chce zrobić Top 10 najlepiej sprzedających się produktów
wykonuje zapytanie które mi pomoze odszukać najlepiej sprzedające się produkty:
SELECT produkt_id, SUM(ilosc)
FROM produkty_zamowione
GROUP BY produkt_id
i sprawdzam pozniej czy przypadkiem dany produkt nie jest skasowany,
jeżeli nie jest(istnieje produkt_id w tabeli produkty), to wlasnie wyswietlany jest w grupie najlepiej sprzedajacych sie.
I tak dziala na serwerze w necie i u mnie dopuki go nie zresetuje bo :
np dodaje 3 produkty o kolejnych numerach produkt_id =1,2,3
klient kupuje wszystkie . W tabeli produkty zamówione pojawiaja sie te 3 pozycje skojarzone z zamowieniem, po jakims czasie usuwam te trzy produkty, resetuje serwer, dodaje nastempny produkt ktory zamiast produkt_id=4 ma 1 i on pojawia mi sie w bestsellerach

aha
w tabeli produkty zamowione istnieja pola nadmiarowe (nazwa_produktu, producent,skala) na wypadek gdyby administrator usunal dany produkt - jego parametry musza byc pokazywane w historii zamowien uzytkownikow nawet po skasowaniu danego produktu z tabeli produkty, czy taka uzasadniana nadmiarowość jest dopuszczalna?
Te pola :
`nazwa_produktu` char(40) NOT NULL default '',
`producent` char(20) NOT NULL default '',
`skala` char(6) NOT NULL default '',