Torna indietro   Hardware Upgrade Forum > Software > Programmazione

Recensione vivo X300 Pro: è ancora lui il re della fotografia mobile, peccato per la batteria
Recensione vivo X300 Pro: è ancora lui il re della fotografia mobile, peccato per la batteria
vivo X300 Pro rappresenta un'evoluzione misurata della serie fotografica del produttore cinese, con un sistema di fotocamere migliorato, chipset Dimensity 9500 di ultima generazione e l'arrivo dell'interfaccia OriginOS 6 anche sui modelli internazionali. La scelta di limitare la batteria a 5.440mAh nel mercato europeo, rispetto ai 6.510mAh disponibili altrove, fa storcere un po' il naso
Lenovo Legion Go 2: Ryzen Z2 Extreme e OLED 8,8'' per spingere gli handheld gaming PC al massimo
Lenovo Legion Go 2: Ryzen Z2 Extreme e OLED 8,8'' per spingere gli handheld gaming PC al massimo
Lenovo Legion Go 2 è la nuova handheld PC gaming con processore AMD Ryzen Z2 Extreme (8 core Zen 5/5c, GPU RDNA 3.5 16 CU) e schermo OLED 8,8" 1920x1200 144Hz. È dotata anche di controller rimovibili TrueStrike con joystick Hall effect e una batteria da 74Wh. Rispetto al dispositivo che l'ha preceduta, migliora ergonomia e prestazioni a basse risoluzioni, ma pesa 920g e costa 1.299€ nella configurazione con 32GB RAM/1TB SSD e Z2 Extreme
AWS re:Invent 2025: inizia l'era dell'AI-as-a-Service con al centro gli agenti
AWS re:Invent 2025: inizia l'era dell'AI-as-a-Service con al centro gli agenti
A re:Invent 2025, AWS mostra un’evoluzione profonda della propria strategia: l’IA diventa una piattaforma di servizi sempre più pronta all’uso, con agenti e modelli preconfigurati che accelerano lo sviluppo, mentre il cloud resta la base imprescindibile per governare dati, complessità e lock-in in uno scenario sempre più orientato all’hybrid cloud
Tutti gli articoli Tutte le news

Vai al Forum
Rispondi
 
Strumenti
Old 28-12-2013, 20:04   #1
isee
Senior Member
 
Iscritto dal: Sep 2010
Messaggi: 718
[SQL/PHP] - Colonne dinamiche

Salve gente,

ho un problema con la gestione di una base di dati e relativa web app in PHP. Vi faccio il punto della situazione! Ho da gestire dei prodotti, questi prodotti hanno dei campi obbligatori, altri (opzionali) cambiano in base alla tipologia di prodotto. Le tipologie quindi, sono una collezione di questi campi opzionali, a loro volta possono essere modificati/rimossi da un addetto ai lavori.

Esempio pratico:
-ProdottoA
-nome: XX
-peso: YY
-tipologia: ferro
-peso specifico (opzionale): XYW
-lucententezza (opzionale): WYXX

-ProdottoB
-nome: HJPA
-peso: GHH
-tipologia: carbone
-derivazione (opzionale): BLABLA
-data acquisto (opzionale): GG/MM/AAAA

Quindi, le tipologie "ferro" e "carbone" hanno campi diversi opzionali. Un admin può decidere di aggiungere o rimuovere o cambiare uno di questi campi, in base alle esigenze, e può anche inserire nuove tipologie. Detto ciò, un "operaio" che deve inserire un prodotto immette i campi obbligatori (nome, peso), seleziona la tipologia ed escono fuori i campi che dipendono dalla tipologia (opzionali, cioè può anche non inserirli).

Partiamo dal fatto che, con le conoscenze derivate dalle lezioni universitarie, questo problema non sono in grado di risolverlo a dovere da solo (nemmeno i colleghi). Non so proprio come impostare la base di dati e come generare colonne dinamiche per l'eventuale modifica dei campi opzionali.
Ok, in realtà l'idea c'è ma è così:

- table tipologie (id, nometip)
- table campi (id, idtipologia, nome_campo)
- table relazione_tipologie_campi (id, idtipologia, idcampo, idprodotto, valore)
- table prodotti (id, nome, peso, tipologia)


A me sembra proprio brutta come cosa e nemmeno tanto buona, ma al momento non sono in grado di trovare una soluzione migliore. Avete suggerimenti?
__________________
Ho venduto a: micanto1(muletto)-franzgranata(Alimentatore)-piff84(Desktop)-s3n3ca(netbook)-
helmen84(Nexus 5)

Ultima modifica di isee : 29-12-2013 alle 15:20.
isee è offline   Rispondi citando il messaggio o parte di esso
Old 31-12-2013, 14:49   #2
isee
Senior Member
 
Iscritto dal: Sep 2010
Messaggi: 718
up
__________________
Ho venduto a: micanto1(muletto)-franzgranata(Alimentatore)-piff84(Desktop)-s3n3ca(netbook)-
helmen84(Nexus 5)
isee è offline   Rispondi citando il messaggio o parte di esso
Old 01-01-2014, 15:14   #3
tigroneveloce
Member
 
Iscritto dal: Apr 2008
Messaggi: 125
Così, a prima vista, io farei così...
Ogni tipologia con la sua tabella dedicata nella quale ogni record rappresenta un campo.
Poi, un'unica tabella prodotti la quale contiene tutte le colonne di tutte le tabelle tipologie...

In pratica:

table ferro
id1 - nome
id2 - peso
id3 - peso specifico
id4 - lucentezza

table carbone
id1 - nome
id2 - peso
id3 - derivazione
id4 - data acquisto

table prodotti (con tutti i campi delle tipologie)
tipologia - nome - peso - peso specifico - lucentezza - derivazione - data acquisto

In questo modo non dovrebbero esserci grossi problemi nel caso di aggiornamenti da parte dell'admin...
Nel caso di una nuova tipologia si creerebbe una nuova tabella dedicata; nel caso di un nuovo campo, una semplice insert nella table tipologia interessata e un'aggiunta di colonna alla table prodotti (se non è già presente un campo comune...).

Poi, con javascript, php e i form html puoi gestire tutto il resto...

Ciao e buon anno.

Ultima modifica di tigroneveloce : 01-01-2014 alle 15:18.
tigroneveloce è offline   Rispondi citando il messaggio o parte di esso
Old 01-01-2014, 15:49   #4
isee
Senior Member
 
Iscritto dal: Sep 2010
Messaggi: 718
Quote:
Originariamente inviato da tigroneveloce Guarda i messaggi

table prodotti (con tutti i campi delle tipologie)
tipologia - nome - peso - peso specifico - lucentezza - derivazione - data acquisto
Ciao e buon anno. In questo modo, io creo una tabella prodotti con colonne fissate anche per i campi della tipologia, ma questi possono aumentare o diminuire. Avevo pensato anche io a questa soluzione, però non funziona perché se ho una tipologia con 20 campi ed una con 200 campi (tutti diversi), che succede poi alla tabella prodotti?
__________________
Ho venduto a: micanto1(muletto)-franzgranata(Alimentatore)-piff84(Desktop)-s3n3ca(netbook)-
helmen84(Nexus 5)

Ultima modifica di isee : 01-01-2014 alle 15:54.
isee è offline   Rispondi citando il messaggio o parte di esso
Old 01-01-2014, 16:05   #5
tigroneveloce
Member
 
Iscritto dal: Apr 2008
Messaggi: 125
Quote:
Originariamente inviato da isee Guarda i messaggi
...ma questi possono aumentare o diminuire.
Non succederebbe niente alla tabella prodotti; al limite ci si troverebbe con un numero di campi inutilizzati...

Piuttosto, è quel "diminuire" che non mi convince...
Che cosa intendi, perdere i dati?
Perché se, per esempio, il campo "derivazione" della tipologia "carbone", viene eliminato dall'admin, allora non recuperi più il valore contenuto (BLABLA).
tigroneveloce è offline   Rispondi citando il messaggio o parte di esso
Old 01-01-2014, 17:39   #6
isee
Senior Member
 
Iscritto dal: Sep 2010
Messaggi: 718
Ma sarebbe una cosa davvero poco elegante, una soluzione bruta e probabilmente evitabile. Personalmente, non prendo proprio più in considerazione una simile alternativa.
Rimango in attesa di altri aiuti comunque
__________________
Ho venduto a: micanto1(muletto)-franzgranata(Alimentatore)-piff84(Desktop)-s3n3ca(netbook)-
helmen84(Nexus 5)
isee è offline   Rispondi citando il messaggio o parte di esso
Old 01-01-2014, 18:31   #7
airon
Senior Member
 
Iscritto dal: Feb 2004
Città: milano
Messaggi: 2148
A mio avviso ciò che hai pensato è proprio la soluzione più corretta. Non mi viene in mente altro di buono ed è ciò che farei pure io.

Cosa non ti convince?
airon è offline   Rispondi citando il messaggio o parte di esso
Old 01-01-2014, 18:41   #8
isee
Senior Member
 
Iscritto dal: Sep 2010
Messaggi: 718
Leggevo qualche tempo fa del fatto che è possibile creare colonne virtuali dinamicamente, però era qualcosa che attualmente va oltre le mie possibilità di studio. Magari poteva esistere qualcosa di simile, fattibile in sql e che io non ero a conoscenza, oppure un'alternativa migliore rispetto a quella che ho trovato io. Nel senso, una volta creata la tabella dei campi delle tipologie con i rispettivi valori inseriti per ogni prodotto, mi sorge il dubbio che effettivamente sia essa stessa una soluzione poco elegante.
__________________
Ho venduto a: micanto1(muletto)-franzgranata(Alimentatore)-piff84(Desktop)-s3n3ca(netbook)-
helmen84(Nexus 5)
isee è offline   Rispondi citando il messaggio o parte di esso
Old 05-01-2014, 12:58   #9
]Rik`[
Senior Member
 
L'Avatar di ]Rik`[
 
Iscritto dal: Mar 2003
Città: Perugia
Messaggi: 16302
a me la tua soluzione sembra la migliore..
]Rik`[ è offline   Rispondi citando il messaggio o parte di esso
 Rispondi


Recensione vivo X300 Pro: è ancora lui il re della fotografia mobile, peccato per la batteria Recensione vivo X300 Pro: è ancora lui il...
Lenovo Legion Go 2: Ryzen Z2 Extreme e OLED 8,8'' per spingere gli handheld gaming PC al massimo Lenovo Legion Go 2: Ryzen Z2 Extreme e OLED 8,8'...
AWS re:Invent 2025: inizia l'era dell'AI-as-a-Service con al centro gli agenti AWS re:Invent 2025: inizia l'era dell'AI-as-a-Se...
Cos'è la bolla dell'IA e perché se ne parla Cos'è la bolla dell'IA e perché se...
BOOX Palma 2 Pro in prova: l'e-reader diventa a colori, e davvero tascabile BOOX Palma 2 Pro in prova: l'e-reader diventa a ...
Xbox Cloud Gaming arriva su Amazon Fire ...
Un blackout a San Francisco manda in til...
Windows 11 è diventato più...
Apple cambia strategia a causa della cri...
007 First Light: uscita rimandata di due...
Samsung Galaxy A37 e A57: il comparto fo...
DAZN lancia la sua offerta di Natale: My...
Gigabyte fa marcia indietro? Sparito il ...
Alcuni rivenditori giapponesi bloccano l...
Le feste non placano Amazon, anzi: aggio...
Roborock Q10 S5+ a un super prezzo: robo...
Formula sceglie WINDTRE BUSINESS per gar...
EXPO 1.20: AMD migliora il supporto all'...
MacBook Pro con chip M4, 24GB di RAM e 1...
Lefant M330 da 6.000Pa a 139€ o ECOVACS ...
Chromium
GPU-Z
OCCT
LibreOffice Portable
Opera One Portable
Opera One 106
CCleaner Portable
CCleaner Standard
Cpu-Z
Driver NVIDIA GeForce 546.65 WHQL
SmartFTP
Trillian
Google Chrome Portable
Google Chrome 120
VirtualBox
Tutti gli articoli Tutte le news Tutti i download

Strumenti

Regole
Non Puoi aprire nuove discussioni
Non Puoi rispondere ai messaggi
Non Puoi allegare file
Non Puoi modificare i tuoi messaggi

Il codice vB è On
Le Faccine sono On
Il codice [IMG] è On
Il codice HTML è Off
Vai al Forum


Tutti gli orari sono GMT +1. Ora sono le: 17:28.


Powered by vBulletin® Version 3.6.4
Copyright ©2000 - 2025, Jelsoft Enterprises Ltd.
Served by www3v