entu Posted September 2, 2011 Report Share Posted September 2, 2011 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. Quote Link to comment Share on other sites More sharing options...
daGrevis Posted September 2, 2011 Report Share Posted September 2, 2011 Tā ir kautcik pareizi kā esmu izdomājis, vai tomēr user_id likt, katrā tabulā? Ja tas paātrinās sistēmas ātrdarbību... protams! Quote Link to comment Share on other sites More sharing options...
Kaklz Posted September 2, 2011 Report Share Posted September 2, 2011 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. Quote Link to comment Share on other sites More sharing options...
entu Posted September 2, 2011 Author Report Share Posted September 2, 2011 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. Quote Link to comment Share on other sites More sharing options...
Kaklz Posted September 4, 2011 Report Share Posted September 4, 2011 Es tev silti ieteiktu palasīt kaut ko par relāciju datubāžu projektēšanas pamatiem. Tas tiešām ir to vērts :) Quote Link to comment Share on other sites More sharing options...
entu Posted September 4, 2011 Author Report Share Posted September 4, 2011 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 Quote Link to comment Share on other sites More sharing options...
Maris-S Posted September 8, 2011 Report Share Posted September 8, 2011 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. Quote Link to comment Share on other sites More sharing options...
Recommended Posts
Join the conversation
You can post now and register later. If you have an account, sign in now to post with your account.