Newsgroup: it.comp.software.database
Titolo: dubbi su diagramma e-r da ricavare da schema logico già realizzato

Ciao a tutti, ho un problema che mi sta facendo venire un sacco di dubbi... 
in pratica dovrei passare dallo schema logico di un database allo schema 
concettuale, dovrei scrivere un diagramma E-R per questo database 
http://digilander.libero.it/benji80/p3kcanvas.vsd
So che di norma bisognerebbe fare il contrario, però ho l'esigenza di fare 
il viceversa... solo che mentalmente sono influenzato dalla realizzazione 
già fatta, quindi ho delle difficoltà a definire entità e relazioni...
In particolare sono in dubbio sulla VENDITA, di norma verrebbe da 
considerarla una relazione tra il venditore e il prodotto, ma qui mi 
verrebbe da pensarla ad un'entità legata alle altre entità da altre 
relazioni, ovvero legata al venditore dalla relazione percentuale che ne 
definisce la percentuale di vendita (visto che la vendita viene suddivisa 
tra più venditori) e dalla relazione attribuzione (uno dei venditori è 
considerato il venditore principale cui viene attribuita la vendita). 
Dall'altra parte invece la vendita la vedrei legata al prodotto da una 
relazione composizione, anche se allo stato attuale sarebbe una relazione 
uno-a-uno perché ad una vendita viene associato un singolo prodotto... 
inoltre la suddivisione vendita/prodotto in due entità con relazione 1-1 mi 
consentirebbe di associare la tipologia di vendita soltanto alla vendita. In 
realtà non sono molto convinto di quello che ho scritto e sono pieno di 
dubbi, per questo vi pregherei di darmi qualche suggerimento e fornirmi la 
vostra opinione. Purtroppo il database si discosta molto da un classico 
esercizio teorico proprio perché rispecchia una situazione reale... e per 
questo risoluta senz'altro un po' "incasinato". Infatti mi ritrovo in mezzo 
anche gli storici e dei coefficienti per il calcolo delle incentivazioni... 
Grazie a chi sapra aiutarmi!
ciao, Benji
PS: Vi scrivo la bozza dei requisiti di partenza da cui poi è stato 
realizzato il database (per farsi un'idea di massima)
Informazioni basilari ed obbiettivi
  a.. Si vuole realizzare una base di dati per la gestione delle 
incentivazioni dei venditori della Concessionaria Dagri - Progetto 3000. La 
Concessionaria attualmente si occupa della vendita di automobili nuove ed 
usate dei marchi Renault e Nissan, ma non si esclude la vendita di altri 
marchi in un prossimo futuro.
  b.. L'obbiettivo primario del progetto è quello di far sì che ciascun 
venditore carichi in un unico database per Renault, Nissan ed Usato tutte le 
vetture vendute, e sulla base di un insieme di parametri il programma 
calcoli automaticamente gli incentivi maturati da ciascun venditore e le 
vendite effettuate da ciascun marchio.
  c.. La gestione dei parametri e di tutti i dati non strettamente inerenti 
le vendite deve poter essere effettuata solamente da un responsabile del 
progetto tramite un'interfaccia separata e con permessi estesi di modifica 
ed eliminazione, oltre alla selezione e all'inserimento.
  d.. Il programma deve essere snello per poter girare in rete fra le sedi 
di Trieste, Monfalcone, Gorizia e Cervignano. Anche in questo caso non si 
esclude l'aggiunta di nuove sedi in un prossimo futuro.
Informazioni estese sui dati
  a.. Per ogni venditore si vogliono memorizzare i seguenti dati personali: 
denominazione, categoria di appartenenza e sito di appartenenza. Sia per la 
categoria che per il sito si vuole inoltre tener conto del riferimento 
temporale, nel senso che un venditore può essere spostato da una categoria 
ad un'altra e da un sito ad un altro.
  b.. Per ogni categoria di appartenenza dei venditori si vuole memorizzare 
una descrizione autoesplicativa (Renault, Nissan, Usato etc.) ed un 
coefficiente storicizzabile che sarà utilizzato per il calcolo degli 
incentivi.
  c.. Per ogni sito di appartenenza dei venditori si vuole memorizzare una 
descrizione autoesplicativa (Trieste, Monfalcone, Gorizia, Cervignano etc.) 
ed un coefficiente storicizzabile che sarà utilizzato per il calcolo degli 
incentivi.
  d.. Per ogni vendita si vogliono memorizzare i seguenti dati: data di 
vendita, tipologia di vettura, tipologia di vendita, targa/telaio 
(verificando che una stessa vettura non possa essere inserita due o più 
volte), data di digitazione su sistema principale (campo che dovrà essere 
compilato dall'impiegato che digita il contratto sul sistema principale) e 
percentuale di vendita assegnata a ciascun venditore, nel senso che una 
vettura può essere venduta da più di un venditore. Il programma deve 
verificare che la somma delle percentuali imputate costituisca esattamente 
un'unità di vendita; deve altresì verificare che ci sia sempre un venditore 
che abbia venduto una quota di maggioranza, anche relativa. In altre parole 
per esigenze statistiche si deve poter determinare chi è il venditore 
principale di una determinata vendita e di conseguenza in quale sede è stata 
effettuata la vendita.
  e.. Per ogni tipologia di vettura (prodotto/servizio) si vuole memorizzare 
una descrizione autoesplicativa (Twingo, Clio, usati, servizi) ed un 
punteggio di base (coefficiente).
  f.. Per ogni tipologia di vendita si vuole memorizzare una descrizione 
autoesplicativa (Nuove Renault, Km 0 Nissan, Usate etc.) ed un coefficiente 
storicizzabile che sarà utilizzato per il calcolo degli incentivi.
Meccanismo di calcolo degli incentivi
·        Ogni venditore ha un obbiettivo individuale mensile di un certo 
numero di punti, al raggiungimento del quale matura un certo premio. Per 
punteggi superiori all'obbiettivo di base si prevede una scala di premi.
·        I punti devono venire assegnati in funzione dei seguenti parametri:
1.     Tipologia della vettura venduta
2.     In base alla tipologia della vettura venduta il dato deve venir 
corretto in funzione di:
·        Tipologia di vendita
·        Categoria del venditore
·        I punti devono tener conto dell'effetto temporale ed essere quindi 
storicizzati: in pratica i punti maturati in gennaio per una determinata 
vendita possono differire da quelli maturati per la stessa vendita in 
febbraio.
Esempio: la vendita di una Renault Clio vale X punti, che vengono 
successivamente moltiplicati per Y1 se appartiene alla tipologia di vendita 
"Km 0" e vengono poi moltiplicati per Y2 in funzione della categoria del 
venditore. In altri termini una Renault Clio a Km 0 venduta dal venditore 
Nissan deve percepire un punteggio diverso rispetto alla medesima vendita 
effettuata da un venditore Renault.
Output da produrre: reportistica e statistiche
  a.. Per ciascun venditore si vogliono poter visualizzare i dettagli delle 
singole vendite, dei punti e del premio maturato in un determinato istante.
  b.. Si vuole poter visualizzare un riepilogo delle vendite con la 
possibilità di filtrarle in base al marchio, al sito di appartenenza o in 
base ad entrambi i parametri. Nota: una vendita è assegnata ad un sito 
piuttosto che ad un altro in funzione del venditore che ha la maggior quota 
di vendita sulla vettura relativa a quella determinata vendita.
  c.. Infine si vuole visualizzare un elenco dettagliato delle vetture non 
digitate sul sistema principale.
Altre richieste: informazioni sul funzionamento
  a.. Ogni venditore deve inserire delle credenziali di accesso (nome utente 
e password) per poter visualizzare le vendite ed inserirne di nuove. Ogni 
venditore deve inoltre visualizzare soltanto le proprie vendite e solamente 
durante l'inserimento di una nuova vendita deve poter scegliere da un elenco 
i venditori che hanno partecipato alla vendita, di cui lui rappresenta 
comunque il venditore principale. I venditori devono poter modificare la 
propria password ma non il proprio nome utente, che verrà scelto ed 
assegnato una tantum dall'amministratore.
  b.. Le modifiche ai dati delle vendite sono consentite soltanto al 
responsabile del progetto. In generale tutte le operazioni di 
visualizzazione, modifica, inserimento ed eliminazione dei dati NON relativi 
alle vendite deve poter essere effettuata soltanto dal responsabile tramite 
un'applicazione separata ed anch'essa protetta dall'utilizzo non autorizzato 
tramite richiesta di nome utente e password di accesso.

 suggerimento e fornirmi la vostra opinione.
Fissare il committente negli occhi; dichiarare perentoriamente
"Questa roba non ti serve, la tua mente è debole"; muovere la mano
semiaperta in circolo ;-)