Jump to content
php.lv forumi

top-down un datubāze


entu

Recommended Posts

Sveiki. Taisu aplikāciju pēc top-down metodes. Sākumā man ir viens ielādēts modelis un attiecīgi tam datubāze. Skatoties uz datubāzes parametriem tiek ielādēti citi objekti. Beigās var iznākt tāds paliels šis. Un galvenais jautājums bija par datubāzi. Pagaidām ir tā, ka tikai galvenajā tabulā glabājas user_id un pārējās tabulās, kā piemēram, "files" , kurš var būt tikai vienam userim, nav norādīts user_id un to var pārbaudit tikai ejot caur galveno tabulu, kura visu salinko un tā tas notiek caur vairākiem līmeņiem. Tā ir kautcik pareizi kā esmu izdomājis, vai tomēr user_id likt, katrā tabulā? Un piemēram, ka tas galvenais objekts ar daudzajiem apakšzariem ir kautkāds produkts, kuru var būt ļoti daudz. Nevarētu būt tā, ka aplikācija paliek diezgan bremzīga? Varbūt ir kādi ieteikumi.

 

Thanks.

Link to comment
Share on other sites

Emm, kā tad tu vispār vari pārbaudīt, ka fails pieder konkrētam lietotājam, ja tur nav klāt user_id ? Man izklausās, ka tev tur ar struktūru ir galīgi slikti.

 

Vienkāršākais veids kā to pārbaudīt ir šeit nopublicēt savu tabulu struktūru vai vismaz daļu no tās.

Link to comment
Share on other sites

Galvenajā tablā ir user_id, un product_id, pēctam tabula products satur file_id un citus id, un tālāk esošas tabulas atkal satur kādu id. Un kautko ielādējot tas viss ielādejas tikai sākot no galvenā modeļa, kur ir user_id un tad manuprāt nav reāli ielādet citu failu ja tas netiek lādēts pa tiešo. Tagad sāku domāt, ka drošvien prātīgāk ari būtu salikt user_id citās tabulās, vismaz tajās, kuras tiks biežāk izsauktas pa taisno, lai nebūtu tik ļoti daudz jāģoino caur to galveno tabulu... vai ari pilnīgi visās. Pataisīšu kādu laiciņu šitā un skatīšos, kas sanāks un cik ērti ar to visu būs rīkoties.

Link to comment
Share on other sites

Ir ir ok, es vienkārši biju iedomājies, jaunu / savādāku struktūru, bet sapratu, ka laika gaitā tas varētu nest tikai problēmas un user_id tomēr jāglabā katrā tabulā. Bet tomēr, kā jau iepriekš izteicu variantu, tas ari nav galīgi nepareizs. Ja Userim ir viens produkts un produktam ir tikai viens fails, protams, ka iznāk ka fails piederam tikai tam userim, kuram pieder tas produkts, un faila tabulā user_id var arī neglabāt. Par to ideju iespaidojos no viena Ruby on Rails tortāļa, kur šajā gadījumā tam failam atrastu ūseri caur tabulu, kura tos salinko kopā. http://guides.rubyonrails.org/association_basics.html#the-has_many-through-association

Link to comment
Share on other sites

Ja es pareizi sapratu kā Tev tagad ir sataisīts, tad labāk liec user_id failu tabulā. Tas ko Tu sataisīji, ar starptabulu, parasti tiek izmantots many-to-many saitēm. Šajā gadījumā Tev visticamāk ir one-to-many, iespējams pat one-to-one, atkarībā no tā cik faili varēs būt lietotājam.

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...