[mysql] MySQL voegt in verkeerde volgorde toe

Pagina: 1
Acties:

  • Kheldar
  • Registratie: Mei 2000
  • Laatst online: 25-05 15:25
Wij houden thuis onze eetlijst bij in een MySQL database en benaderen deze met een PHP scriptje.
Dit ging lang goed, je kon opgeven wat, door wie, voor wie gekocht was en de nieuwe totaal bedragen pp werden dan als nieuwe rij in de database gezet (relatieve bedragen waren netter geweest, maar dit was lekker makkelijk ;) ).
Nu treedt na een tijdje (bij ons na rij 54) het volgende probleem op in de database: als er nieuwe rijen worden toegevoegd, komen deze niet netjes onderaan te staan, maar begint MySQL naar boven toe rijen toe te voegen:
code:
1
2
3
4
5
6
7
id | Omschrijving
---+--------------
53 | blaat
54 | blaat2
57 | blaat5
56 | blaat4
55 | blaat3

Met ORDER BY krijgen we dit wel weer goed, maar het ziet er niet echt netjes uit in MySQL zelf.
Kent iemand dit probleem, of weet iemand er een oplossing voor?

Hieronder ons databaseschema:
code:
1
2
3
4
5
6
7
8
9
10
11
12
13
CREATE TABLE saldos (
  id int(10) unsigned NOT NULL auto_increment,
  datum date NOT NULL default '0000-00-00',
  omschrijving tinytext NOT NULL,
  koper tinyint(4) NOT NULL default '0',
  bedrag decimal(4,2) NOT NULL default '0.00',
  kamer2 decimal(4,2) NOT NULL default '0.00',
  kamer3 decimal(4,2) NOT NULL default '0.00',
  kamer4 decimal(4,2) NOT NULL default '0.00',
  kamer6 decimal(4,2) NOT NULL default '0.00',
  kamer7 decimal(4,2) NOT NULL default '0.00',
  PRIMARY KEY id (id)
) TYPE=MyISAM;

  • chem
  • Registratie: Oktober 2000
  • Laatst online: 27-08 13:53

chem

Reist de wereld rond

dit is normaal gedrag voor SQL; als je geen volgorde aangeeft, is er geen enkele garantie voor de volgorde van de output.

Klaar voor een nieuwe uitdaging.


  • GarBaGe
  • Registratie: December 1999
  • Laatst online: 22:14
Waarom zou je nou weer data gesorteerd in de database willen hebben :?
Vaag...

Ryzen9 5900X; 16GB DDR4-3200 ; RTX-4080S ; 7TB SSD


Verwijderd

[Redelijk OT]
Volgens mij is je database model niet echt goed. Dat kamer1, kamer2, kamer3.. moet je zo veel mogelijk vermijden in databases. Je zou hiervoor een aparte tabel moeten maken.

Verwijderd

Sluit me bij GarBaGe aan...als het goed werkt, waarom wil je het dan gesorteerd hebben in je database?

  • MikeN
  • Registratie: April 2001
  • Laatst online: 10-09 20:25
Op maandag 25 maart 2002 17:52 schreef Kheldar het volgende:
Kent iemand dit probleem, of weet iemand er een oplossing voor?
Ja, ik heb de oplossing:
Met ORDER BY krijgen we dit wel weer goed, maar het ziet er niet echt netjes uit in MySQL zelf.
;)

Door optimalisaties e.d. en om fragmentatie te voorkomen zal het altijd een "zooitje" worden in een database. Er is gewoon niets aan te doen. Maar als het goed is heb je daar ook absoluut geen last van. Aangezien je gewoon een order by kan toevoegen.

  • Kheldar
  • Registratie: Mei 2000
  • Laatst online: 25-05 15:25
Ok, bedankt allemaal. Ik dacht dat het misschien sneller zou zijn als het zo in de database zou staan (de databases op mijn eigen systeem waren altijd wel netjes op volgorde, vandaar), maar het maakt dus niets uit.
Volgens mij is je database model niet echt goed. Dat kamer1, kamer2, kamer3.. moet je zo veel mogelijk vermijden in databases. Je zou hiervoor een aparte tabel moeten maken.
Nah, boeit hier volgens mij weinig, als ik nu meer info per kamer op zou slaan zou het wel beter zijn ivm redundancy enzo. Maar voor dit model is het een beetje overkill en ik had ook geen zin om er weer te kijken of alles wel BCNF, 3NF en 4NF was ;) .

Verwijderd

Op maandag 25 maart 2002 20:30 schreef Kheldar het volgende:
Nah, boeit hier volgens mij weinig, als ik nu meer info per kamer op zou slaan zou het wel beter zijn ivm redundancy enzo. Maar voor dit model is het een beetje overkill en ik had ook geen zin om er weer te kijken of alles wel BCNF, 3NF en 4NF was ;) .
Who wtf is BCNF, 3NF etc :). Ik spreek eigenlijk meer uit mijn eigen ervaring dat dit soort dingen niet echt goed zijn. Maar stel je es voor dat jullie gaan uitbouwen of gaan verhuizen en meer kamers krijgen.. dag database >:).

  • Annie
  • Registratie: Juni 1999
  • Laatst online: 25-11-2021

Annie

amateur megalomaan

Op maandag 25 maart 2002 21:42 schreef Xenith het volgende:

[..]

Who wtf is BCNF, 3NF etc :).
als ik me niet vergis:

3 = Third (3e)
BC = Boyce-Codd

NF = Normal Form

Today's subliminal thought is:


  • Femme
  • Registratie: Juni 1999
  • Laatst online: 10-09 13:37

Femme

Hardwareconnaisseur

Official Jony Ive fan

Als je
Op maandag 25 maart 2002 20:30 schreef Kheldar het volgende:
Ok, bedankt allemaal. Ik dacht dat het misschien sneller zou zijn als het zo in de database zou staan (de databases op mijn eigen systeem waren altijd wel netjes op volgorde, vandaar), maar het maakt dus niets uit.
Het kan helpen om de data op een bepaalde index te rangschikken. Hiervoor kun je myisamchk gebruiken (moet je ws wel root hebben op de MySQL doos).
Pagina: 1