PDA

View Full Version : Modello Concettuale


mikael_c
10-04-2013, 10:13
Mi serve una mano sul modello concettuale ho dei dubbi sulla cardinalità di preventivo e su la correttezza del modello.Secondo me:
Entità:
Auto(descrizione,marca ..)
Accessori(codice,descrizione…)
AccessorioAcquistato(quantita)
Preventivo()

Cardinalità:
Auto*----*Accessori
Accessori 1----* AccessorioAcquistato

Dubbi:

Auto 1----* Preventivo
Preventivo 1 ……* AccessorioAcquistato

Ogni automobile è caratterizzata da un codice, una marca,prezzo base. Le automobili hanno accessori. Ciascun accessorio ha un codice,descrizione,prezzo unitario ed è applicabile ad una collezione di automobili. Gli utenti utilizzano il sistema per costruire preventivi. Ciascun preventivo riguarda un’automobile ed una collezione di accessori. Per ciascun accessorio è necessario specificare la quantità.
Scenario principale :
-L’utente accede alla pagina principale del sito, in cui vede l’elenco delle automobili .
-L’utente seleziona l’automobile.
- L’applicazione mostra i dettagli relativi all’automobili selezionata , e l’elenco di tutti gli accessori compatibili.
-Per ciascun accessorio:
1)L’utente seleziona l’accessorio e specifica la quantità.
2) L’applicazione aggiunge l’accessorio acquistato al preventivo e aggiorna il totale.
Cosa ne pensate???

The_ouroboros
10-04-2013, 10:20
posto il disegno logico del db che ragioniamo su quello.

The_ouroboros
10-04-2013, 13:26
Cardinalità:
Auto*----*Accessori
Accessori 1----* AccessorioAcquistato



Sei proprio sicuro del primo?
Io spezzerei la N-N in 1-N -> N-1 ...

mikael_c
10-04-2013, 15:31
Non sono sicuro, un auto può avere diversi accessori,diversi accessori possono essere presenti in un auto. oppure da auto 1----* accessori??

The_ouroboros
10-04-2013, 15:33
Non sono sicuro, un auto può avere diversi accessori,diversi accessori possono essere presenti in un auto. oppure da auto 1----* accessori??
tabella di lookup intermedia;)

Auto 1..n AccessoriAuto n..1 Accessori
auto
accessorio

mikael_c
10-04-2013, 15:40
OK,Cosa ne pensi delle altre cardinalità invece??Ho dei dubbi su Preventivo

The_ouroboros
10-04-2013, 15:44
alleghi lo schema logico del db cosi ci ragioniamo?
Non è cosa veloce e rapida e senza "la mappa" non arrivi a destinazione

mikael_c
10-04-2013, 15:48
Auto 1-----* Preventivo.

Preventivo 1----* Accessorio Acquistato

The_ouroboros
10-04-2013, 16:08
il disegno completo... la mappa del tesoro...quello che usi per presentare al cliente il db..:stordita:

mikael_c
11-04-2013, 08:09
[Auto]*----*[Accessori]1-----*[Accessorio Acquistato]
1
:
*
[Preventivo]1-------------------------*[Accessorio Acquistato]


Ho scritto 2 volte [Accessorio Acquistato] perchè non riesco a metterlo con le frecce

The_ouroboros
11-04-2013, 08:39
intendevo un vero disegno.
Fatto a mano e scan o in UML.
Con questa roba si fa una fatica immane (1..n non 1...*) e non lo presenterei nemmeno a topolino :eek:

mikael_c
11-04-2013, 09:06
Ho allegato l'immagine del modello concettuale. Va bene??

The_ouroboros
11-04-2013, 09:13
Leggi sotto

The_ouroboros
11-04-2013, 09:18
anzi meglio.
Riprendi la mia listina, seguila punto punto e poi posta lo schema logico (disegno completo)

mikael_c
11-04-2013, 09:25
Relazioni:

Un [Auto] può avere diversi [Accessori], un [Accessorio] può essere presente in diverse [Auto]. Quindi ([Auto]N----N[Accessorio]).

Un [Accessorio] può essere acquistato in diverse quantità[Accessorio Acquistato].Quindi ([Accessorio ]1----N[Accessorio Acquistato]).

In Un [Preventivo] ci possono essere diversi [Accessori Acquistato].
Quindi ([Preventivo]1----N[Accessorio Acquistato]).

Un [Auto] può essere in diversi [Preventivo].
Quindi ([Preventivo]N----1[Auto]).

The_ouroboros
11-04-2013, 09:29
facciamo un patto...
Tu fai la mappa logica (http://www.hwupgrade.it/forum/showpost.php?p=39313184&postcount=2) come io comanda e poi ne riparliamo.

Usa i passi, Luke!

mikael_c
11-04-2013, 09:46
Io di solito lo faccio come nel file che ti ho allegato precedentemente non in maniera complicata, perchè mi serve solo per capire se le relazioni e le cardinalità sono corrette in modo da poter creare il DB per l'applicazione, e poi tutto il resto.Quando puoi da un occhiata al tutto , scusa il disturbo.

The_ouroboros
11-04-2013, 09:54
Io di solito lo faccio come nel file che ti ho allegato precedentemente non in maniera complicata, perchè mi serve solo per capire se le relazioni e le cardinalità sono corrette in modo da poter creare il DB per l'applicazione, e poi tutto il resto.Quando puoi da un occhiata al tutto , scusa il disturbo.

scusa se sono categorico ma...
E' questo il tuo poblema!
Fai il disegno logico preciso e SOLO poi implementi il tutto.

englishman_64
11-04-2013, 09:56
Relazioni:


Scusate se mi intrometto, ma vi state avvitando nella discussione.

Il suggerimento di The_Out* e' corretto, ma dimentica di spiegartene l' importanza, facendogli perdere, cosi', di efficacia.

Nel disegno dati, e' imperativo seguire una sequenza logica di passi, e isolare ogni passo dagli altri, poiche' gia' con poche entita'/relazioni (come nel tuo caso) si rischia di fare confusio e e pasticci.

Non e' casuale (e' un comportamento classico) ed e' un errore, inventarsi nel livello logico i "codici" dimenticandosi di individuare correttamente tutte le chiavi, candidate e primarie, non battezzare le relazioni, insomma saltare i passi dovuti e arrivare direttamente alla conclusione che ci si aspetta dal lato applicativo.

Ricorda che il DB e' un qualcosa che vive di vita propria, al di la degli applicativi che vi possono insistere sopra, che e' un valore in se' anche maggiore delle funzionalita' che lo utilizzano, e che e', per sua natura, di difficile evoluzione ( le funzionalita' sbagliate o inutili le puoi gettare nella pattumiera, un DB errato o da modificare concettualmente lo devi ridisegnare e devi implementare un task di migrazione, non puoi semplicemente gettarlo e ri-crearlo).

Ripeto, puo' sembrare un discorso di lana caprina (sento gia' i commenti: "tanto sono solo quattro tabelle"), ma anche solo cosi', come vedi, e sopratutto come *non* vedi, nascono problemi implementativi (e semini problemi futuri).

mikael_c
12-04-2013, 08:37
Entità:
-Auto(codice,marca,modello,cilindrata,prezzo)
-Accessori(codice,descrizione, prezzo unitario,collezione auto)
-Preventivo(totale)
-Accessori Acquistato(quantità)
Relazioni:
-Auto con Accessori.
-Auto con Preventivo.
-Accessori con Accessori Acquistato.
-Preventivo con Accessori Acquistato.
Cardinalità:
-Auto con Accessori. n....n
-Auto con Preventivo.1....n
-Accessori con Accessori Acquistato. 1....n
-Preventivo con Accessori Acquistato. 1....n

Cosa ne pensate??

The_ouroboros
12-04-2013, 09:00
puoi fare (molto) meglio.
Leggiti l'ultimo post sopra il tuo ;)

The_ouroboros
15-04-2013, 08:55
alla fine come hai risolto?

mikael_c
16-04-2013, 09:49
Non sono riuscito a fare di meglio. vorrei qualche consiglio sul tutto

The_ouroboros
16-04-2013, 09:57
consiglio: leggi i passi, ragioni, disegni, riragioni, crei.
E' un processo lungo non da due minuti, non so proprio come enfatizzare il punto.

Io posso darti consiglio dopo che mi scannerizzi (o UML) il progetto logico completo, non aborti che hanno poco significato.

Sei tu ad avere i parametri di importanza di selezione del tutto, non io. :stordita: