Consigli come strutturare db mysql

Bivio

Utente Attivo
19 Mag 2010
91
0
6
Salve, vorrei qualche consiglio, su come strutturare un db al meglio. Quello che vorrei realizzare e la gestione della merce di un ufficio, siccome la situazione e un po particolare vorrei creare il tutto con php/mysql da poter gestire in rete locale...
1. Devo suddividere i dati per settimane (1-52)
2. Avere x clienti che a loro volto fanno parte di un determinato gruppo

Io avevo pensato di creare una tabella clienti che oltre a vari dati anagrafici etc... inserivo anche il nome del gruppo, quindi quando con una select posso estrarre solo i clienti di un determinato gruppo, ma come faccio a suddividere i dati per settimane? creo una tabella per ogni settimana?

Voi cosa mi consigliate?
 

borgo italia

Super Moderatore
Membro dello Staff
SUPER MOD
MOD
4 Feb 2008
16.046
150
63
PR
www.borgo-italia.it
ciao
puoi inserire il numero della settimana nel record (non credo che ti serva fare una tabella settimane)
PHP:
<?php
//....per inserire
$num_set=date("W");//restituisce il numero della settimana 01-52
$ris=mysql_query("INSERT INTO tabella (n_set, dati) VALUES($num_set, '$dati')");
//...
?>
PHP:
<?php
//.... per estrarre i dati della settimana numero xy
$num_set=$_POST['settimana_selezionata'];
$ris=mysql_query("SELECT * FROM tabella WHERE n_set=$num_set");//per cui estrai i dati della settimana
//....
?>
se i gruppi hanno un nome (es. pittori, cantanti, sonnambuli...) ti fai una tabella dei gruppi e quando inserisci il cliente selezioni il gruppo e nel record del cliente metti il campo id_gruppo

se poi vuoi sapere le date di inizio/fine settimana (inizio=lunedì, fine=domenica) puoi ausare questa funzioncina (aggiustata alle tue esigenze)

PHP:
<?php
function settimana(){
	$num_set=date("W");//numero della settimana
	//riporto al lunedì
	$ini=strtotime("+0 week")-((date("N",strtotime("+0 week"))-1)*24*60*60);//in timestamp
	//aggiungo 6 giorni -> domenica
	$fine=$ini+(6*24*60*60);
	$gg_i=date("D d/m/Y",$ini);
	$gg_f=date("D d/m/Y",$fine);
	return "la settimana n&deg; $num_set va dal $gg_i al $gg_f<br>";
}
echo settimana();
?>
 

Bivio

Utente Attivo
19 Mag 2010
91
0
6
Ciao, grazie per la risposta, quindi se ho capito bene devo creare una tabella per ogni gruppo giusto? ottima anche la funzione delle settimane e proprio quella che mi serviva grazie :D
 

borgo italia

Super Moderatore
Membro dello Staff
SUPER MOD
MOD
4 Feb 2008
16.046
150
63
PR
www.borgo-italia.it
ciao
se non ho capito male quello che vuoi fare
no devi creare una tabella gruppi (es)
id_gr int(12) autoincrement primarykey
gruppo varchar(250) #nome del gruppo

1 cantanti
2 autostoppisti
3 sonnambuli
..ecc..

poi nella tabella clenti metterai un campo che conterrà l'id del gruppo di appartenenza (es)
id_cl int(12) autoncrement primarykey
id_gr int(12)
nome varchar(200)
per cui i record diverranno
1 3 Asdrubale
2 2 Sofonisba
3 3 Pancrazio
4 1 Pallino
...ecc...

quando verroi vedere i cantanti ti salterà fuori Asdrubale e Pancrazio
 

Bivio

Utente Attivo
19 Mag 2010
91
0
6
Penso di aver capito, ma non riesco a capire che vantaggi avrei tra la soluzione da te consigliata

Tabella: gruppi

id_gr | nome_gruppo |
1 blu
2 rosso
3 verde

Tabella: clienti

id_cl | id_gr | nome | cognome | sett |
1 2 pinco pallino 09
2 1 mario rossi 09
3 2 pinco pallino 15
4 3 carlo bianchi 06
5 2 luca esposito 07

query

PHP:
$sql = "SELECT * FROM clienti WHERE id_gr='2' ";
Dati estratti:

pinco pallino 09
pinco pallino 15
luca esposito 07

oppure

Tabella: clienti

id_cl | n_gruppo| nome | cognome | sett |
1 blu pinco pallino 09
2 rosso mario rossi 09
3 blu pinco pallino 15
4 verde carlo bianchi 06
5 blu luca esposito 07

PHP:
$sql = "SELECT * FROM clienti WHERE id_gr='blu' ";
Dati estratti:

pinco pallino 09
pinco pallino 15
luca esposito 07
 

borgo italia

Super Moderatore
Membro dello Staff
SUPER MOD
MOD
4 Feb 2008
16.046
150
63
PR
www.borgo-italia.it
ciao
intanto è una questione di principio per l'uso dei db relazionali (e buona programmazione), soprattutto se uno o piu valori si ripetono uguali su più record,
poi es. quando inserisci un nuovo cliente (o ricerchi) puoi farti una select dinamica che ti estrai i gruppi (con poi la comodità di aggiungere uno o più gruppi)
senza contare che un record
4 verde carlo bianchi 06
occupa piu spazio di
4 12 carlo bianchi 06
 

Bivio

Utente Attivo
19 Mag 2010
91
0
6
Ciao,
Ok, quindi ricapitolando potrei fare una cosa del genere?

Tabella: Gruppi = id_gr - n_gruppo
Tabella: Clienti = id_cl - id_gr - nome - cognome - sett - d_inserimento
Tabella: Merce = id_me - id_gr - id_cl - merce_da_ricevere - m_evasa - d_rice


Va bene cosi? in poche parole io devo salvare per ogni settimana la merce che il cliente deve ricevere e ancora non l'ha ricevuta perchè non presente. Appena la merce sarà disponibile verrà consegnata, quindi verrà inserita nel campo m_evasa SI e nel campo d_rice la data della consegna. Inoltre può capitare che ogni cliente abbia diversi prodotti e non tutti verranno consegnati lo stesso giorno, mi conviene scriverli tutti in un campo o differenziarli?
 

borgo italia

Super Moderatore
Membro dello Staff
SUPER MOD
MOD
4 Feb 2008
16.046
150
63
PR
www.borgo-italia.it
ciao
le tabelle vanno abbastanza bene, però non so esattamente quello che devi fare e come vuoi strutturare il db.
così a lume di naso da quello che ho intuito
1. hai dei gruppi formati da diversi clienti, ma un cliente può appartenere a gruppi diversi? es. asdrubale è un pittore (gruppo pittori), ma ha l'hobby della pesca quindi
appartiene anche al gruppo pescatori?
se solo un gruppo la tabella gruppi e clienti vanno bene, nel secondo caso no
2. le merci: anche queste sono divise in gruppi, gli stessi gruppi dei clienti? oppure sono indiffernziate (es) un paio di scarpe va bene per i pittori e per i chitarristi?
3. forse ti conviene fare anche la tabella merci soparutto se sono indefferenziate
4. poi per le consegne, se come dici un cliente a più merci e che queste possono avere consegne diverse più cle quella che chiami tabella merci io farei una tabella consegne (o ordini)

non sò se la sto facendo più difficile di quello che è effettivamente, ma un consiglio fatti tutte le domande possibili e cerca di darci una risposta, prendi carta e matita e studiati tutte le relazioni che devi avere,
e/o collegamenti tra le tabelle. mettere le mani dopo su un db può essere una rogna

eventualmente siamo qui
 

Bivio

Utente Attivo
19 Mag 2010
91
0
6
Si diciamo che il progetto e un po impegnativo, e vorrei creare qualcosa con una base solida e strutturato con logica. Rispondendo alle domande:

1. Ho diversi clienti che fanno parte solo ed esclusivamente di un gruppo.
2. La merce e uguale per tutti i clienti indifferentemente dal gruppo di appartenenza.
3. Quindi mi converrebbe creare una tabella per la merce e per poi associarla al singolo cliente giusto?
4. Ok, devo chiarire meglio questo aspetto.

Sto seguendo il tuo consiglio, ho preso un foglio di carta e sto facendo tutte le prove possibili, appena avvarrò finito vi chiederò un consiglio finale.

Grazie :byebye:
 
Discussioni simili
Autore Titolo Forum Risposte Data
E Consigli per hosting reseller Hosting 0
F Consigli passaggio a nuova piattaforma CMS (Content Management System) 0
F Consigli passaggio a nuova piattaforma SEO e Posizionamento 3
N Consigli SEO per il mio sito di web design SEO e Posizionamento 0
Daniele_Carrara Consigli scheda video - Blender Webdesign e Grafica 2
G Consigli SEO per scrittura e struttura pagine SEO e Posizionamento 7
bubino8 Consigli e aiuti integrazione API Programmazione 8
G Access point con rete guest, consigli? Reti LAN e Wireless 0
G Richiesta consigli SEO: nuovo algoritmo Google (e altro) SEO e Posizionamento 2
P [Photoshop] Consigli per logo dimensioni minime Photoshop 1
B [WordPress] Consigli per sito b&b WordPress 1
Seeride Consigli per ripetitore wifi? Reti LAN e Wireless 2
T Consigli Impianto Videosorveglianza Esterna Deposito IP Cam e Videosorveglianza 8
D [PHP] Consigli su come creare form PHP 1
S Consigli per invio di comunicati stampa Discussioni Varie 2
G Consigli Logo aziendale Webdesign e Grafica 7
W [Javascript] Bootstrap Admin templates, mi dareste dei consigli? CMS (Content Management System) 0
E [Photoshop] consigli per stampa puzzle personalizzato Photoshop 0
N [Photoshop] Tavoletta Grafica XP-Pen O Wacom : Consigli per il primo Acquisto Photoshop 0
Zidane Spero di poter dare e ricevere molti consigli Presentati al Forum 0
I [HTML/CSS] Consigli sul mio primo sito HTML e CSS 9
G [WordPress] Consigli tema portfolio WordPress 3
G consigli per nuovo sito Hosting 2
B Consigli telecamera esterna IP Cam e Videosorveglianza 1
M Consigli prima di fare qualsiasi passo Domini 8
G mysql - problemi inserimento dati nel database, consigli. MySQL 3
braccobaldo Hosting per nuovo sito WordPress: consigli? Hosting 6
B Consigli per libro su Python Programmazione 1
voldemort Consigli per Cloud Object Storage Cloud Computing e Cloud Server 1
zorro Consigli.........cercasi PHP 2
A consigli sull'action dei form PHP 9
P Consigli per sistemare meglio il menu HTML e CSS 63
D Suggerimenti e/o consigli per App personale gestione Rapporto Interventi Tecnici (RIT Sviluppo app per Android 0
F webmaster novizio, consigli Discussioni Varie 1
T Consigli da professionisti del mondo web in merito ai corsi di formazione Discussioni Varie 0
fabriziio consigli contratto Leggi, Normative e Fisco 0
zorro Consigli per indicizzazione nuovo sito (principiante) SEO e Posizionamento 3
K Supporto - consigli e chiarimenti per utilizzo transazioni ... PHP 6
G Consigli per sito multilingua in PHP PHP 1
S Consigli per script javascript per creare videogiochi Javascript 2
L Consigli su utilizzo framework per progetto PHP 4
novello88 Consigli per posizionamento nuovo blog SEO e Posizionamento 7
E consigli per piccola area riservata PHP 4
Sevenjeak Aiuto e consigli su adattamento sito per dispositivi mobile HTML e CSS 2
L Realizzazione script prenotazione posti: consigli PHP 3
Umberto Conti Richiesta consigli e suggerimenti per ecommerce E-Commerce 5
A Problema script e consigli PHP 6
Z Redirect 301 per restyling sito: dubbi e consigli SEO e Posizionamento 0
T Consigli C/C++ C/C++ 1
R Immobili - strumenti e consigli Joomla 0

Discussioni simili