[FLUG-Tech] aiutino db
Leonardo Boselli
leo@dicea.unifi.it
Mar 16 Ott 2012 14:00:53 CEST
On 10/15/2012 06:19 PM, alessio chemeri wrote:
>> Occorre un DB con funzioni di ricerca.
>
> occorre che tu ci mandi uno schema approssimativo.. :D
tab1 (possessore): *PID-Nome-disponibilita-localita-recapito
(disponibilità significa "nessuna" "a guidare" "a caricare" "a caricare
e guiidare")
tab2 (diponibile): *ID-VID-PID-Datainizio-datafine-titolo-condizioni
(titolo significa prestito/scambio/locazione, condizioni possono essere
annotazione del tipo "non riportare tra le 20 e le 22" oppure "in questo
periodo ho tolto il portabagagli dal tetto")
tab3 (veicolo): *VID-descrizione-dimensioni(....)-caratteristiche(....)
> comunque, da quello che ho capito, hai :
>
> -dei proprietari di veicoli
> -degli eventuali autisti del veicolo stesso (proprietari o no)
sono lo stessa tabella, non ha senso distinguere. un veicolo può avere
più possessori, un possessore può possedere più veicoli.
> -dei veicoli che hanno delle disponibilità varie nel tempo e
> particolarità differenti..
> (trasporto cose, trasporto persone)
> forse, ti converrebbe scorporare i veicoli in due gruppi.. perche' una
> cosa è il trasporto
> persone, l'altra e' il trasporto cose..
Non è un problema, sotto dimensioni ci sono parecchi campi. lo scopo
principale però è di trovare vicoli per trasposto grossi oggetti, e
magari chi ta da una mano.
> Ai veicoli credo tu debba dare valori quali:
> - idveicolo (ch1 , ti converrebbe usare la targa.. niente è piu'
> univoco della targa :D (a parte clonazioni))
lascia fuori il carretto a mano e il rimorchio per bicicletta, ma una
soluzione [targa virtuale] si può trovare anche per questi due casi, è
la cosa che preoccupa di meno
> - idproprietario (* punta alla tabella dei proprietari)
non posso, potrei avere più proprietari per lo stesso veicolo.
è questo che mi frega ....
> sulla tabella tempo-prestito... ti occorre
> -idveicolo
> -inizio data disponibilita (data unica + orario.. quindi datetime..
> perche' potresti poterlo prestare magari solo per 3 ore del
> pomeriggio)
quello è chiaro !
> -tipologia disponibilita (prestito, oppure scambio.. credo che per
> scambio intendi, "ti do il mio fiorino, ma dammi un mezzo per
> muovermi...?")
esatto ....
> -fine data disponibilita
> -idprenotazione (qui ci metti chi se lo prenota..)
questa non è prevista. la contrattazione è diretta tra le parti. sta al
prossessore di ritirare la disponibilità, fra l'altro non è detto che il
periodo per il quale il mezzo è offerto serva tutto_
> la palla in questo caso è che chi presta il mezzo deve tutte le volte
> rinnovare i "ticket" di prestito..
> quindi o lo fai periodico (tipo "tutti i lunedi dalle 15 alle 18") o
> fai un qualche script che ogni settimana / mese / periodo deciso da te
> rinnova i ticket..
credi a me, meglio chiedere di rinnovarlo a mano. chi è interessato
aggiorna, chi non lo è più c'è il rischio che lasci una disponibilità
per ciò che non è disponibile, che è peggio.
>> per ogni veicolo ci sarebbero più record di questo tipo (in quanto potrei
>> essere disposto a prestarlo senza condizioni il giovedì, mentre solo se me
>> ne danno uno in cambio il mercoledì mentre al lunedì e martedì lo condivido
>> con la moglie alla quale potete pure chiederlo ... ma non la settimana di
>> pasqua) La idea era di avere [un vincolo esterno è di usare mysql nella
>> versione di debian stable] tre tabelle: una dei possessori, una dei veicoli
>> e una con le disponibilità, con due record addizionali: uno che punta al
>> possessore e uno che punta al veicolo.
>> C'è da dire che normalmente le richieste verrebbero fatte indicando le
>> caratteristiche del veicolo (quindi cercando sulla tabella veicoli); la data
>> in cui si vuole il mezzo, e ritornerebbero la lista di mezzi e possessori;
>> ma anche con la possibilità di fare una contemporanea ricerca sul campo
>> possessore ("disposto a aiutare a caricare e/o guidare")
>>
>> Esiste un modo più efficiente per organizzare il DB ?
>
> io credo che esista gia qualcosa di fatto..
> http://sourceforge.net/projects/openride/?source=directory
no, quello fa cose in più ma non ha tutta la flessibilita dei quello che
serve in questo caso.
quello che mi lascia dubbi è come fare la query chiedendo
"cercami veicoli con lunghezza di carico almeno 220 cm" e fin qui facile
(tabella veicoli)
il cui proprietario (cioè chi ti da le chiavi) sia a Firenze [e
probabilmente il veicolo sarà lì, ma non è una caratteristica in carico
la veicolo che in quanto veicolo è soggetto a spostamenti] e qui cerchi
sulla tablella proprietari
e che sia disponibile il giorno x dalle y alle z
quindi estrarre quei record in cui il campo PID e VID sono stati
estratti entrambi nelle prime due ricerche.
non mi è chiaro come fare la query ...
più difficile: voglio due persone che mi aiutino !
quindi cerco quei record dalla tabella disponibilità i cui lo stesso
veicolo VID nella stessa data appare con due PID diversi con flag
disponibilità a caricare attivo su entrambi (ossia ci sono almeno 2
possessori, a cui posso chiedere di aiutarmi a caricare)
come si fa senza tabelle ausiliarie ?
Maggiori informazioni sulla lista
flug-tech