Creazione Database Hardware

Diego Aguiari

Nuovo Utente
23 Giu 2013
14
0
0
Salve,

come il titolo lascia intuire voglio creare un database che contenga le specifiche di un bel po' di pezzi hardware ( sì lo so è da pazzi vista l'evoluzione informatica).

Data la mia totale ignoranza in termini di database chiedo a voi come fare^^

Vi faccio un esempio di tabelle del database giusto per dare un'idea:

Tabella CPU avrà i campi ID, frequenza, nome, codename, socket, architettura (e altri, tanto l'importante è il concetto aggiungere o togliere un campo non penso cambi la struttura del database)

Il database dovrà poi essere utilizzato in questo modo, l'utente digita in un text field per esempio Intel i5 e appare un elenco dove l'utente può selezione per esempio i5 3570k oppure i5 4770 e in automatico vengono caricati i campi del database da qualche parte che ancora devo decidere( in linea di massima mi serve solo stamparli a video)

Come posso fare? Tutti le componentistiche hardware hanno in comune i campi anno, nome, produttore.

Spero di essere stato abbastanza chiaro^^

Grazie in anticipo.
 

Diego Aguiari

Nuovo Utente
23 Giu 2013
14
0
0
Mi hanno consigliato di usare una relazione IS-A e di implementare il tutto così :

crei l'entita COMPONENTE dove metti gli attributi comuni a tutti i componenti.

Poi le varie entita cpu ecc con i soli attributi aggiuntivi...

Qualcuno sa come implementare in MySQL suddetta relazione? mi basta proprio lo schema di base la prima entità (componenti) con una figlia (CPU)

Grazie in anticipo :)
 

HolidaySoft.it

Utente Attivo
16 Ott 2012
105
0
0
Milano
www.holidaysoft.it
Mi hanno consigliato di usare una relazione IS-A e di implementare il tutto così :



Qualcuno sa come implementare in MySQL suddetta relazione? mi basta proprio lo schema di base la prima entità (componenti) con una figlia (CPU)

Grazie in anticipo :)


Ciao,
prova a vedere se ti può essere di aiuto la proposta indicata in questo post: tabella prodotto con relativi attributi

Se hai bisogno di ulteriori info, fammi sapere

Ciao



A quick solution is a shortcut to troubleshooting
HolidaySoft.it - Gestionali, Database, SitiWeb
GarganoSapori.it - Olio ExtraVergine del Gargano
OsteriaORistorante.it - Crea la Vetrina per il tuo Ristorante!
 

Diego Aguiari

Nuovo Utente
23 Giu 2013
14
0
0
Alla fine, prendendo spunto da un po' di siti ho abbozzato questo:
Codice:
CREATE TABLE `componenti` (
	`ID` VARCHAR(4) NOT NULL,
	`anno` INT(4) NOT NULL,
	`produttore` VARCHAR(30) NOT NULL,
	`nome` VARCHAR(40) NOT NULL,
	PRIMARY KEY (`ID`)
)
COLLATE='utf8_unicode_ci'
ENGINE=InnoDB;

CREATE TABLE `cpu_tab` (
	`componenti_ID` VARCHAR(4) NOT NULL,
	`socket` VARCHAR(5) NOT NULL,
	`codename` VARCHAR(20) NOT NULL,
	`architettura` VARCHAR(3) NOT NULL,
	`clock` INT(4) UNSIGNED NOT NULL,
	`score` INT(6) NULL DEFAULT NULL,
	PRIMARY KEY (`componenti_ID`),
	CONSTRAINT `FKcpu_tab` FOREIGN KEY (`componenti_ID`) REFERENCES `componenti` (`ID`) ON DELETE CASCADE
)
COLLATE='utf8_unicode_ci'
ENGINE=InnoDB;

Dici che può andare? :)
 

Longo8

Utente Attivo
28 Mar 2011
1.694
0
36
Io farei tutto su un'unica tabella a meno che non ci sia una motivazione valida.
Nel caso tuo basta decidere cosa e come mostrare all'utente, quindi è molto più comodo fare tutto in un'unica tabella.
 

HolidaySoft.it

Utente Attivo
16 Ott 2012
105
0
0
Milano
www.holidaysoft.it
Alla fine, prendendo spunto da un po' di siti ho abbozzato questo:
Codice:
CREATE TABLE `componenti` (
	`ID` VARCHAR(4) NOT NULL,
	`anno` INT(4) NOT NULL,
	`produttore` VARCHAR(30) NOT NULL,
	`nome` VARCHAR(40) NOT NULL,
	PRIMARY KEY (`ID`)
)
COLLATE='utf8_unicode_ci'
ENGINE=InnoDB;

CREATE TABLE `cpu_tab` (
	`componenti_ID` VARCHAR(4) NOT NULL,
	`socket` VARCHAR(5) NOT NULL,
	`codename` VARCHAR(20) NOT NULL,
	`architettura` VARCHAR(3) NOT NULL,
	`clock` INT(4) UNSIGNED NOT NULL,
	`score` INT(6) NULL DEFAULT NULL,
	PRIMARY KEY (`componenti_ID`),
	CONSTRAINT `FKcpu_tab` FOREIGN KEY (`componenti_ID`) REFERENCES `componenti` (`ID`) ON DELETE CASCADE
)
COLLATE='utf8_unicode_ci'
ENGINE=InnoDB;

Dici che può andare? :)

Ciao,
con la soluzione "TUTTO SU UNA TABELLA" o "TABELLA CPU" sei condizionato a cambiare la struttura delle tabelle ogni volta che devi aggiungere o eliminare un attributo del componente. Invece la soluzione con le tre tabelle con tabella centrale di legame, puoi aggiungere "n" attributi del componente e inoltre puoi gestire anche diversi componenti (cpu, mem, hd), il tutto in modo dinamico con poche modifiche alla struttura

Ciao
Mik


A quick solution is a shortcut to troubleshooting
HolidaySoft.it - Gestionali, Database, SitiWeb
GarganoSapori.it - Olio ExtraVergine del Gargano
OsteriaORistorante.it - Crea la Vetrina per il tuo Ristorante!
 

Longo8

Utente Attivo
28 Mar 2011
1.694
0
36
Ma hai pensato a quella struttura come se fosse una relazione molti:molti tra prodotti e specifiche? Se sì può starci. Perché in questo modo si crea la terza tabella che è di relazione.
 

Diego Aguiari

Nuovo Utente
23 Giu 2013
14
0
0
All'inizio avevo pensato di fare un'unica tabella, ma poi avrei avuto mille mila attributi da gestire, ogni componente hardware ha diverse specifiche :)

Uhm diciamo che ho pensato alla struttura come, in componenti metto tutti i campi comuni a tutti i componenti e linko alle varie tabelle specifiche :D

cioè vi faccio un esempio di cosa contengono le due tabelle:

componenti:
ID -> cpu1
nome -> fx-6300
produttore ->amd
anno -> 2012

cpu_tab
comp->id cpu1
clock-> 3511
score -> 6480
socket -> am3+
architettura -> x64
codename -> vishera

poi ci sarà una cpu2, cpu3 ecc...

Il problema è che, una volta fatto questo database viene la parte incasinata :D

Ovvero devo aggiungere un campo di testo all'interno del sito, e fin qui tutto ok, fare in modo che se da questa pagina del sito http://tecnomercatino.it/item/new viene selezionata una categoria allora tramite uno script jquery viene creato un "autocomplete" con i record solamente della categoria selezionata, ovviamente deve essere una cosa dinamica(e non so minimamente come fare ciò).
Idee, consigli, aiuti, qualsiasi cosa è ben accetta :)
 

Longo8

Utente Attivo
28 Mar 2011
1.694
0
36
La mia opinione è:
1) fare come stai facendo (ti complichi la vita) se poi devi creare dei filtri e quindi delle ricerche per tipi diversi di componenti; ad esempio se volessi vedere tutti i pc di una marca (scelta) che abbiano un display da tot pollici (scelta) allora conviene fare delle selezioni sul db e avere tutto organizzato invece di usare delle regex.

2) mettere tutto in una tabella se tutte le specifiche del prodotto sono SOLO a titolo informativo. Quindi possono essere viste come un campo testo (SPECIFICHE) nel quale metterai tutte le specifiche magari in un formato adatto per garantirti una certa visualizzazione piuttosto che altre.
 

Diego Aguiari

Nuovo Utente
23 Giu 2013
14
0
0
In realtà è molto semplice ottenere tutto :D
Basta una query di questo tipo
PHP:
$table="componenti";

$table2="cpu_tab";

$sqlquery ="SELECT * FROM $table as o, $table2 as c WHERE o.ID=c.componenti_ID AND produttore LIKE '%AMD%'";

e ottengo tutte le cpu amd :)
Poi giocandosela con php e modificando $table $table2 e il LIKE ottengo quello che voglio :D
 
Discussioni simili
Autore Titolo Forum Risposte Data
T Aiuto creazione database elementare MS Access 2
F creazione progetto web con player e database Javascript 1
M Creazione grafico ad istogrammi con dati estratti da database mysql PHP 5
F Creazione lista utenti database con php a oggetti PHP 0
M [RISOLTO] Creazione database MySQL 14
M Creazione Database XML PHP 1
G Creazione nuovo database! AIUTO! MySQL 3
A Creazione database PHP 0
M Creazione database online...da dove cominciare??? MySQL 0
G Creazione interfaccia VISUALIZZAZIONE/CANCELLAZIONE dati database PHP 1
S Creazione database gestione automezzi MS Access 2
Z Problema database creazione tabella Database 0
C XLS – VBA Creazione database da questionari. HELP urgente, pls Database 0
P Problema creazione tabella database mysql PHP 9
R creazione carrello - unire sito al database PHP 14
G Aiuto creazione database Database 0
C creazione database Web Server 3
K Creazione guidata database Database 1
R creazione database sul web HTML e CSS 25
S Visualizza l'errore di creazione in MSSQL Database 4
M [Cerco][Gratuito] Artista/designer per creazione grafica gioco di società Offerte e Richieste di Lavoro e/o Collaborazione 0
N Creazione sito web senza Partita IVA (Era: mettersi in regola) Leggi, Normative e Fisco 1
F NetBeans problema creazione progetto Java Windows e Software 0
A Creazione cookie e gestione accessi PHP 0
D Creazione sito e-commerce WP CMS (Content Management System) 0
A Consiglio per creazione sito web CMS (Content Management System) 1
S CREAZIONE DI SITO PER CORSI DI FORMAZIONE WordPress 3
spider81man Creazione di un UNICA tabella da più file .CSV PHP 1
M Creazione menu a tendina Javascript 3
S Download di un file in automatico dopo la sua creazione PHP 2
G creazione menu a tendina e invio a pagina php PHP 1
M Problemi con creazione maschere Presentati al Forum 1
F Creazione script Tv Presentati al Forum 1
W Creazione Cartella Classic ASP 2
A recuperare data creazione di un file PHP 6
D Neofita. Creazione applicativo prenotazione automezzi Offerte e Richieste di Lavoro e/o Collaborazione 12
L Aiuto creazione menu mancante WordPress 0
E Creazione URL per chat whatsapp WordPress 0
L Creazione di 2 o più record PHP 6
W Creazione di una griglia HTML e CSS 1
E Creazione di un sito di news PHP 16
S Scelta software/cms per creazione sito Webdesign e Grafica 6
E Creazione gestionale timesheet partendo da foglio excel Offerte e Richieste di Lavoro e/o Collaborazione 0
M Creazione notifica sonora Javascript 1
R Creazione sito eccomerce privato. Offerte e Richieste di Lavoro e/o Collaborazione 2
I Creazione programmino JAVA Offerte e Richieste di Lavoro e/o Collaborazione 0
D Difficile creazione excel di dati di grandi dimensioni Classic ASP 2
I creazione stile css HTML e CSS 3
A [Offro][retribuito] Creazione siti web/ web app (Django) Offerte e Richieste di Lavoro e/o Collaborazione 2
Stefano Migotto Creazione di un div con php o js PHP 9

Discussioni simili