Back to top

Autore Topic: gestire relazione uno-a-molti  (Letto 2448 volte)

Offline kassandra

  • Esploratore
  • **
  • Post: 60
  • Sesso: Femmina
    • Mostra profilo
gestire relazione uno-a-molti
« il: 20 Set 2011, 13:43:36 »
Sto sviluppando i miei primi componenti, ne ho già messi in opera due, con mia grande soddisfazione e imparando tantissimo dal forum.  ;D
Fino ad ora è andato tutto liscio perché mi sono sempre limitata a creare una view per ogni singola entità del mio database, adesso però, nel componente a cui sto lavorando ho due delle tabelle, convenzioni ed enti, che sono in relazione molti-a-molti: ho creato allora una terza tabella contraenti (id, id_convenzione, id_ente e importo).

Dal lato admin ho già le classiche view: convenzioni, convenzione, enti, ente, ma creare delle  view per la terza tabella mi sembra un po' farraginoso: l'utente dovrebbe creare la convenzione, creare - se non ci sono ancora - gli enti che la stipulano, creare un nuovo contraente per ogni ente che stipula quella convenzione.

Mi piacerebbe gestire la cosa direttamente nella view convenzione: cioè oltre ai dati della convenzione singola (oggetto, edificio, data etc etc da inserire nella table convenzione) inserire gli enti che stipulano con il relativo importo (e quindi da inserire nella table contraenti).

Il problema per me ha due aspetti: la modifica della view e l'aggiornamento del db:

per il primo aspetto, se non dovessi inserire anche un importo per ogni contraente potrei usare una casella di riepilogo a selezione multipla con gli enti in cui selezionare i contraenti, ma invece mi serve una coppia di campi (una combo per l'ente ed una textbox per l'importo) che l'utente possa aggiungere n volte nella form, non sapendo prima quanti enti stipulano la convenzione.

Ho visto qualcosa di simile in virtuemart, dove nella scheda "product status" del singolo prodotto si possono aggiungere n attributi: cliccando il tasto si aggiunge direttamente nella schermata l'html necessario. Non ne ho mai fatto uso, ma mi pare di capire che si tratti di ajax: è così?

Può essere l'occasione per studiare un po' Ajax, però devo anche capire come fare ad aggiornare più tabelle dalla stessa view: devo chiamare i rispettivi model (convenzione e contraente) dalla funzione save del controller di convenzione, o sto dicendo bestialità??

Per me è un problema nuovo ed ho proprio bisogno di aiuto: temo non esistano classi di joomla che mi servano la pappa pronta. Qualcuno ha già affrontato quest'esigenza? Come avete risolto? Attendo speranzosa suggerimenti... ^_^

ps: non sono sicura che l'oggetto sia chiarissimo, ma non mi è venuto niente di più esplicativo... scusate  :(
« Ultima modifica: 20 Set 2011, 15:41:29 da kassandra »
ci sedemmo dalla parte del torto, visto che tutti gli altri posti erano occupati

mau_develop

  • Visitatore
Re:gestire relazione uno-a-molti
« Risposta #1 il: 20 Set 2011, 16:59:35 »
comincio dalla fine..
----
ma non mi è venuto niente di più esplicativo
--------------------
 perchè hai voluto porre 2000 problemi in un post, anche se inerenti lo stesso lavoro che stai facendo... purtroppo su un forum non essendo uno accanto all'altro è difficile affrontare le cose così...

Inoltre parlando di relazione uno a molti vai un po' fuori pista secondo me.
Credo di aver intuito + o - cosa ti capita e provo a risponderti un po' a cappella ...vedi di filtrare tu ciò che ti può servire :)

- in un componente puoi mettere tutte le tabelle che vuoi, il problema è che il CRUD non gestisce più tabelle, ma nulla ti vieta di scrivere metodi, classi statiche o codice php che comunque consenta un comodo handling.

- Scegliere se quì o lì ... è "delicato", solitamente per non finire nei casini è meglio usare l'mvc per come è stato progettato, ... oppure fregarsene beatamente rinunciando ovviamente ai benefici (...non lo farei), quindi tenere a mente che
l'entry point è la porta di ingresso, il controller il maggiordomo, il model la servitù e la padrona di casa è la view :) ..non tanto come importanza ma perchè è quella che ha solo il compito di "esibire"

- Quando poi ti viene l'idea di usare  js le cose si complicano un attimino, perchè qualche lavoretto "minore" lo dovrà fare anche la view (js è eseguito dal client e quindi è quello il punto dove farlo lavorare.
Per aggiungere dinamicamente un field non è complicatissimo devi usare mootools o JQuery per fare una cosa così

http://sroucheray.org/blog/jquery-dynamic-form/

M.

Offline kassandra

  • Esploratore
  • **
  • Post: 60
  • Sesso: Femmina
    • Mostra profilo
Re:gestire relazione molti-a-molti
« Risposta #2 il: 20 Set 2011, 17:39:57 »
hai ragione: ho messo troppa carne al fuoco  :-\ in futuro eviterò di farlo

però tutti gli spunti che mi dài mi sono utili per riflettere un po':
- per l'aggiunta dinamica di fields, studierò il codice che mi hai linkato, grazie. Ho imparato ad inserire le mappe nelle mie view seguendo il tuo tutorial su jquery, poi però non ho approfondito tentando altri usi di JQuery. Vorrà dire che adesso lo farò.

- per quanto riguarda l'mvc, assolutamente voglio restare nella sua logica, è che non sono sicura di quale sia il modo migliore per farlo! Come suggerisci tu però è meglio affrontare una cosa alla volta: adesso mi concentro sull'aggiunta dinamica dei controlli e poi scriverò un altro post per il passo successivo

(ps: mi accorgo adesso di aver scritto "uno-a-molti" nell'oggetto quando invece è molti-a-molti! troppe cose, confuse e pure sbagliate... ::) )
« Ultima modifica: 20 Set 2011, 18:19:54 da kassandra »
ci sedemmo dalla parte del torto, visto che tutti gli altri posti erano occupati

mau_develop

  • Visitatore
Re:gestire relazione uno-a-molti
« Risposta #3 il: 20 Set 2011, 18:07:52 »
guarda, non trovo il post, ma la risposta a questo quesito la dava Amy sul suo blog ed era del tipo che se senti il bisogno di mettere in relazioni tabelle diverse probabilmente la soluzione è creare + componenti e farli interagire tra loro... il che non sarebbe difficile ma ti costringe ad aggiungere talmente tanto codice quando con due script statici ti sei tolta il problema... poi dipende anche dal progetto ovviamente.

M.

Offline kassandra

  • Esploratore
  • **
  • Post: 60
  • Sesso: Femmina
    • Mostra profilo
Re:gestire relazione uno-a-molti
« Risposta #4 il: 20 Set 2011, 18:23:04 »
da quello che dici mi sa che non sia il mio caso, però cerco il post e lo leggo, visto mai...
ci sedemmo dalla parte del torto, visto che tutti gli altri posti erano occupati

Offline kassandra

  • Esploratore
  • **
  • Post: 60
  • Sesso: Femmina
    • Mostra profilo
Re:gestire relazione uno-a-molti
« Risposta #5 il: 20 Set 2011, 18:28:20 »
intendi questo blog: http://AllTogetherAsAWhole.org/  ?

il mio illuminato datore di lavoro lo considera abbastanza pericoloso da bloccarlo  ::)

rinvio al ritorno a cà
ci sedemmo dalla parte del torto, visto che tutti gli altri posti erano occupati

mau_develop

  • Visitatore
Re:gestire relazione uno-a-molti
« Risposta #6 il: 20 Set 2011, 18:48:57 »
beh... malgrado alcuni suoi punti di vista non li condivida, con mille alibi dovuti 1 alla mia stupidità e 2 al fatto che non abbiamo rapporti se non uno o due post quindi può essere solo incomprensione...
... nello sviluppo di cms e di Joomla e Molajo soprattutto, è un riferimento importante

... pericolosa.. ummmhh ... sì ... come tutte le donne comunque :)

M.

Offline kassandra

  • Esploratore
  • **
  • Post: 60
  • Sesso: Femmina
    • Mostra profilo
Re:gestire relazione uno-a-molti
« Risposta #7 il: 21 Set 2011, 09:51:17 »
... pericolosa.. ummmhh ... sì ... come tutte le donne comunque :)

M.

cioè innocua e innocente come un agnellino, allora  ::)
ci sedemmo dalla parte del torto, visto che tutti gli altri posti erano occupati

 



Web Design Bolzano Kreatif