Jump to content
php.lv forumi

mysql column , izvade un update


FT3

Recommended Posts

Lai uzzinātu, vai lietotājam X ir piesaistīts ieraksts #7172, Tu pieprasi visus 1000k (Tu nepārspīlē?) ID garo stringu, kas ir saistīts ar attiecīgo lietotāju, un tad to dekodē (unserialize(), json_decode()), atrodi dabūtajā masīvā ID un jā... Mums ir ID!

Lai izmanītu (pievienotu/dzēstu) ierakstu kādam, Tu pieprasi to, jau minēto, garo stringu, dekodē... pievieno iegūtajam masīvam jaunu atslēgu vai izdzēs esošo. Sūti atpakaļ. Pirms tam, protams, atkal enkodējot.

 

Jūti overkill`u? :) Tu visu laiku saņem un sūti atpakaļ garu, garu stringu... pietam, servera pusē, to visu laika dekodē, enkodē.

Link to comment
Share on other sites

Nu jebkurā gadījumā Tev ir no datubāzes jāielādē visi dati - nevis tikai viens, kas ir vajadzīgais. Vai arī Tu to kaut kā iedomājies darīt datubāzes pusē? :)

 

Jebkurā gadījumā tas ir overkill's! Klausi ko Grevis saka... :D

Link to comment
Share on other sites

Tas nav nekāds overkills un nav arī lēni. Tā var darīt. Vismaz ja vajag atlasīt tikai failus pēc lietotāja, nevis lietotājus pēc faila. Teorētiski ja tev jau lapas ielādē ir pieprasīti lietotāja dati, un katrā lapā ir jārāda arī favorīti, tad tas pat būtu ātrāk, jo nevajag lieku kveriju.

 

Bet nu jā, vēl vienu tabulu ieviest laikam būtu universālāks risinājums, ja nu ienāk prātā uztaisīt, piemēram, statistiku, cik un kādi lietotāji failu ir atzīmējuši.

Edited by mad182
Link to comment
Share on other sites

var darīt daudz ko, bet vai vajag.

Un tas ir overkils. Ja ir 1000 faili un tev vajag to attēlot. Normālā UI 1000 ierakstus neattēlos, tātad vajadzēs dalīt pa lapām, līdz ar to katru reizi lasīt visus datus un no tiem atlasīt vajadzīgos ir overkils.

Nemaz nerunājot par jauna faila favoritēšanas ievietošanu vai izdzēšanu. Vai vēl labāk, ja fails tiek dzēsts, tad gan jāiet cauri visiem lietotājiem jālasa visi dati, jāskatās vai ir tāds fails favoritizēts un tas jāizdzēš un tad jātaisa atkal update user tabulai. Kamēr daGrevis variantā tas ir viens kverijs, kas izmantojot indeksu, izpildīsies momentāli.

Edited by codez
Link to comment
Share on other sites

tabulas:

users:id,name
files:id,name
users_files:uid,fid

 

 

pievienot favorīti:

INSERT INTO users_files SET uid=$userid, fid=$fileid;

 

dzēst favorīti:

DELETE FROM users_files WHERE uid=$userid and fid=$fileid;

 

Lietotāja favorīto failu saraksts:

SELECT * FROM users_files uf LEFT JOIN files f ON uf.fid=f.id WHERE uf.uid=$userid;

 

Dzēst failu:

DELETE FROM files WHERE id=$fileid;
DELETE FROM users_files WHERE fid=$fileid;

 

 

Visu lietotāju saraksts, kuriem patīk fails:

SELECT * FROM users_files uf LEFT JOIN users u ON uf.uid=u.id WHERE uf.fid=$fileid;

Edited by codez
Link to comment
Share on other sites

Join the conversation

You can post now and register later. If you have an account, sign in now to post with your account.

Guest
Reply to this topic...

×   Pasted as rich text.   Paste as plain text instead

  Only 75 emoji are allowed.

×   Your link has been automatically embedded.   Display as a link instead

×   Your previous content has been restored.   Clear editor

×   You cannot paste images directly. Upload or insert images from URL.

Loading...
×
×
  • Create New...