Witaj Gościu! ( Zaloguj | Rejestruj )

Forum PHP.pl

> "dziwny" auto increment na moim serwerze mysql
pointman
post 27.02.2005, 21:39:30
Post #1





Grupa: Zarejestrowani
Postów: 2
Pomógł: 0
Dołączył: 27.02.2005

Ostrzeżenie: (0%)
-----


Spotkał się ktoś z takim czymś w autoinkrementacji MySQL ?
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 exclamation.gif

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 '',

Ten post edytował pointman 27.02.2005, 23:50:22
Go to the top of the page
+Quote Post

Posty w temacie


Reply to this topicStart new topic
1 Użytkowników czyta ten temat (1 Gości i 0 Anonimowych użytkowników)
0 Zarejestrowanych:

 



RSS Wersja Lo-Fi Aktualny czas: 14.08.2025 - 04:21