Jump to content
php.lv forumi

labaka datubazes struktura


zirgs

Recommended Posts

nu saku domat kadu lai isti taisa datubazes strukturu ja man vajag teiksim katrai zinjai komentaarus atljaut ... nu taisu piemeeram datubazi komentarizinjam bet talak, es nezinu vai taisit entos table kjip id1,id2 un tur glabaat attiec id komentaarus vai vnk vienu table kur kkaaa visi komentaari butu? kadam nav kads logjisks risinajums? paldies

Link to comment
Share on other sites

Taisi divas tabulas:

1. Rakstiem

2. Komentāriem

 

Tabulā "komentari" glabā attiecīgā raksta ID.

 

Aptuvenā struktūra:

 

Tabula - Raksti:

RakstaID | nosaukums | bilde | teksts | autors | datums

 

tabula - Komenti:

KomentaID | rakstaID | autors | teksts | datums | ip

 

Lai izvilktu attiecigos komentarus:

SELECT k.* FROM Komenti k, Raksti r WHERE r.RakstaID = ".intval($_GET['rakstaID']).";

Edited by MakaTaNaw
Link to comment
Share on other sites

Lai izvilktu attiecigos komentarus:

SELECT k.* FROM Komenti k, Raksti r WHERE r.RakstaID = ".intval($_GET['rakstaID']).";

a kapeec tik sarezhgiiti?

SELECT * FROM Komenti WHERE rakstaID = '".intval($_GET['rakstaID'])."';

Link to comment
Share on other sites

Nezinu, laikam jau uztraukums par vēstures eksāmenu (pēc 1,5h sākas) - visu vienkāršo gribas sarežģīt.

 

By the way: Kāpēc ... rakstaID = ' ".intval($_GET['rakstaID'])." ' liec iekš single quotes, ja zināms, ka vēlamais rakstaID lauka tips ir integer ?

Link to comment
Share on other sites

Vel var piebilst ka tomeer shaadi ir aatraak, bet ne labaak..

Vajag arii paarbaudi ;)

if ($_GET['rakstaID']>0)
{

//	SELECT * FROM Komenti WHERE rakstaID = ".intval($_GET['rakstaID']).";
//  izvadam tos komentaarus........ 
}
else
{
echo 'Komentaru naff';
}

Link to comment
Share on other sites

Grey_Wolf, kāpēc man tā tava pārbaude liekas dīvaina?

 

Neviens jau neliedz rakstu ID glabāt intervālā -783 - 666, tāpēc ID > 0 var arī nenostrādāt. Nebūtu labāk pārbaudīt, vai tāds raksts vispār eksistē ( selecto un tad mysql_num_rows == 1 ), pēc tam līdzīgi pie komentāriem - nav jau teikts, ka tādi tur vispār ir, tāpēc nočeko, vai ir kaut viens komentārs ( mysql_num_rows >= 1 ), ja ir, tad raksta, ja nav, tad paziņo, ka tukšs.

 

A un par eksāmeniem nav ko stresot, tie tāpat taisīti, lai arī muļķi var nolikt.

Link to comment
Share on other sites

Kavacky --> es tik to kaa piemeeru...

ar domu ka parbaudi vajaag kaa taadu...

protams IR japarbauda vai komentaari ir vispaar..

jo useris jau var caur GET padot nez ko....

Un par tiem intervaaliem -222 -111 nu teikshu atklaati taa....

parasti jau gan ID veido ar automaatiski un izmanto pozitiivus Integer ;)

taa kaa saada parbaude nebuut nav taa sliktaakaa...

+ sakumaa var parbaudiit vai vispaar ir padots ID un tik tad parbaudiit/ chekot DB...

Link to comment
Share on other sites

  • 4 weeks later...

ja vajag saskaitīt komentārus tad ir divi veidi kā to vislabāk izdarīt:

1. pie rakstu tabulas piemetam vienu ailīti klāt - comment_count. un tur attiecīgi metam/dzēšam aktuālo komentāru skaitu

2. veidojam tabulu comment_count ar attiecīgām kolonnām: raksta_id:comment_count. un tad ar attiecīgu lefjoinu visu velkam ārā.

 

pirmais veids ir mazāk advancēts, ja komentāri ir tikai vienai tabulai.

otrais veids vairāk advancēts, ja komentāri ir vajadzīgi vairākām atsevišķām tabulām un katrai ir slinkums taisīt comment_count kolonnu. vienīgi tad vēl vajag pie tās comment_count tabulas piemest kolonnu kādi ir tie komentāri (attiecīgi kas par tabulu).

 

tālūk!

 

p.s.

un neaizmirstam visu noindeksēt smuki :)

Link to comment
Share on other sites

×
×
  • Create New...