-
Notifications
You must be signed in to change notification settings - Fork 16
New issue
Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.
By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.
Already on GitHub? Sign in to your account
Task B1 - Creazione in admin/units di un bottone per copiare le aree da un altra unità e per incollarle da un template. #10
Comments
Io ed E. avevamo pensato di creare delle "skeleton area", cioè delle aree con solo alcuni campi. Queste aree verranno poi agganciate alla unit (nella quale il template si incolla) espandendo così i campi. Qui trovi la struttura dati:
Il codice SQL per crearle sta nel mio branch "template" del Core: Ho tentato anche di creare i modelli mondelefant...ma ancora non li ho provati, li trovi sotto il mio branch "template" del frontend:
Il primo passo è quello di creare un template di aree a partire da una unit esistente.
|
bene bene |
alessandro ma ci sono motivi particolari per non aver reso gli id delle tabelle "template" e "template_area" non autoincrementali? |
Premesso che i data type sono da rivedere (non sono un esperto), non credo che in un determinato momento ci dovrebbero essere piú di 2 miliardi di aree tra tutti i template disponibili. Se la cosa avviene allora é meglio che il db dia errore piuttosto che continuare ad inserire (magari a causa di un bug). Inoltre penso che si potrebbero anche rivedere alcuni data type usati nelle tabelle base. Viene spesso usato ad es. il serial8 che ha come base il bigint che da documentazione é meno performante dell'integer. |
Alessandro ti spiego: in una tabella SQL ci deve essere sempre una colonna PRIMARY KEY, e questa e' costituita da un valore che identifica la riga. Nelle tabelle dove si vuole identificare le righe con una successione di numeri, invece di assegnare manualmente il valore, il database sql offre l'opportunita' di generare automaticamente un numero nuovo ogni volta che si aggiunge una riga, senza dover andare a vedere quale era l'ultimo della tabella. Per fare questo i vari db hanno vari metodi, e postgre usa i type serial4 o serial8, che dietro le quinte creano una sequence associata alla tabella, da cui prendono i numeri ogni volta che si aggiunge una riga nuova. Se si cancella una riga i campi della colonna non vengono tutti aggiornati ma rimangono con un buco, quindi l'unica cosa che ti assicura il type serial e' che la successione sia monotona crescente, ovvero che ogni nuova riga avra' un valore piu' grande di tutte le righe create (anche se poi cancellate) in passato. Quindi a meno che tu non voglia scrivere a mano il codice che crea l'id assicurandosi che sia il piu' grande ad ogni insert, ti conviene usare: "id" SERIAL8 PRIMARY KEY Fanno eccezione quelle tabelle dove la primary key e' gia' fornita insieme ai valori degli altri campi in quanto e' un identificativo ad esempio testuale. |
SERIAL4 👍 |
https://github.com/Movimento5StelleLazio/ParlamentoElettronicoM5S/wiki/Design-2---UI
The text was updated successfully, but these errors were encountered: