Kirjautuminen

Haku

Tehtävät

Keskustelu: Nettisivujen teko: MySQL Rivien järjestys

RQ [20.02.2011 12:25:38]

#

Tarkoituksena olisi tehdä linkkilista tietokantaan, jonka linkkien järjestystä pystyisi muuttamaan, ja uusia linkkejä tarvittaessa luoda entisten linkkien väliin. Ajattelin, että teen tauluun sarakkeen, joka kertoisi, missä järjestyksessä rivit tulostetaan sivulle, mutta ongelmana tuossa on uusien linkkien lisääminen entisten keskelle.

Taulu voisi näyttää vaikka tältä

id	url			nimi	järjestys
1	www.link1.fi	Link1	1
2	www.link2.fi	Link2	2
3	www.link3.fi	Link3	5
4	www.link4.fi	Link4	4
5	www.link5.fi	Link5	3

jolloin linkit tulostettaisiin sivulle näin:

Link1
Link2
Link5
Link4
Link3

Nyt jos vaikka Link1:n ja Link2:n keskelle luotaisiin uusi linkki, pitäisi kaikkien Link2:n ja Link5:n välillä olevien linkkien järjestys-sarake päivittää, että saa uuden linkin mahtumaan väliin. Jos linkkejä on useita kymmeniä tai niitä vaihdetaan usein, tulee palvelimelle turhaa rasitusta.
Onko kellään mitään muuta ratkaisua, miten tuo tietokanta kannattaisi muodostaa?

Metabolix [20.02.2011 13:04:28]

#

Jos linkkejä on tuhat, päivitys tapahtuu silmänräpäyksessä eikä kummemmin rasita palvelinta. Et tarvitse erillistä kyselyä joka linkille vaan voit siirtää kaikkia vanhan ja uuden paikan välissä olevia linkkejä yhdellä kyselyllä.

makumaku [20.02.2011 13:29:48]

#

Eli jos haluat lisätä uuden linkin vaikka "paikkaan" 58, niin ei näiden kahden kyselyn suoritus pitäisi kovin kauaa kestää.

UPDATE linkittaulu SET jarjestys = jarjestys+1 WHERE jarjestys >= 58
INSERT INTO linkittaulu (url, jarjestys) VALUES ("www.xxx.fi", 58)

Mod. lisäsi kooditagit.

RQ [20.02.2011 13:51:57]

#

Ai, se käykin noin helposti. Kiitos molemmille, eiköhän tällä pääse projektissa eteenpäin.

makumaku [20.02.2011 13:54:53]

#

Ja jos systeemissä on hyvin monia käyttäjiä jotka kaikki lisäilevät linkkejä tiheään tahtiin, niin voi miettiä että tekee näistä kyseleyistä transaction.

Vastaus

Aihe on jo aika vanha, joten et voi enää vastata siihen.

Tietoa sivustosta