[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