![]() |
Sagra di Cimpello Pro Loco Cimpello 1998 |
Volontario
IDVolontario CHAR(2) |
Nome VARCHAR(20) |
Cognome VARCHAR(20) |
Servizio CHAR(1) |
DataDiNascita DATA |
Indirizzo VARCHAR(30) |
L'attributo IDVolontario č rappresentato da due caratteri (a scelta, ovvia proposta sono le iniziali di nome e cognome, con varianti in caso di duplicati).
L'attributo Servizio sarį codificato nel seguente modo:
Valore | Significato |
---|---|
C | Cassiere |
A | Cameriere |
V | Vassoista |
Piatto
IDPiatto CHAR(2) |
NomePiatto VARCHAR(12) |
Descrizione VARCHAR(30) |
Tipo CHAR(1) |
Ord INTEGER(3) |
Prezzo INTEGER(5) |
Anche qui IDPiatto č a scelta, plausibilmente costituito dai primi due caratteri del nome del piatto con variazioni in presenza di duplicazioni.
L'attributo Tipo sarį codificato nel seguente modo:
Valore | Significato |
---|---|
C | Ordine da Cucina |
B | Ordine da BAR |
A questa tabella puņ essere inoltre aggiunto tutta una serie di informazioni di ``abbellimento'' e cose varie (mi viene in mente un BLOB con l'immagine del piatto, il prezzo in Euro e cose simili...).
Ordine
Nordine INTEGER(5) |
Data DATA |
Stato CHAR(1) |
L'attributo Nordine č da considerarsi un contatore in stile ``fattura'' degli ordini. É da notare che l'attributo Stato é stato aggiunto, non é presente nello schema concettuale ne in quello logico; l'attributo Stato é stato aggiunto per questioni di efficienza (evita di fare query multiple per conoscere lo stato in cui si trova un ordine) ed é stato codificato nella seguente maniera:
Valore | Significato |
---|---|
I | Inserito ogni ordine inizialmente si trova in questo stato o in quello successivo |
X | Asporto |
A | Abilitato |
E | Evaso |
D | Cancellato per eventuali cancellazioni offline in batch |
É da notare, inoltre, che pur potendo le tre operazioni (inserimento, abilitazione, evasione) in teoria essere condotte indipendentemente, contemporaneamente e condurre quindi a uno stato non noto, le modifiche dello stato di un ordine vengono fatte sempre e solo con il ``pezzo di carta'' in mano (che é unico a meno di falsari... ;), quindi naturalmente in maniera mutuamente esclusiva.
Asporto
Nordine INTEGER(5) |
Data DATA |
Nome VARCHAR(12) |
É da notare che l'informazione sul nome (anche se di solito si scrive il cognome, o il soprannome ;) del cliente che richiede l'asporto é piś che sufficiente.
Tavolo
Nordine INTEGER(5) |
Data DATA |
Ntavolo INTEGER(3) |
É da notare come queste due ultime relazioni siano mutuamente esclusive (se un ordine é da asporto non ha un tavolo assegnato e viceversa).
Storia
Nordine INTEGER(5) |
Data DATA |
IDVolontario CHAR(2) |
Tstamp TIMESTAMP |
In questa relazione si tiene traccia dei tempi di ogni operazione (inizio di,
veramente) compiuta sull'ordine e di chi l'ha compiuta.
Composizione
Nordine INTEGER(5) |
Data DATA |
IDPiatto CHAR(6) |
Qta INTEGER(3) |
Concetto | Costrutto | Volume |
---|---|---|
Volontario | E | 10-20 |
Piatto | E | 10-20 |
Ordine | E | 200-400 a serata |
Asporto | R | 10-20 a serata |
Tavolo | R | circa tanti quanto Ordine |
Storia | R | circa il triplo di Ordine |
Composizione | R | tante volte Ordine quanti sono i piatti come WC, a occhio circa la metį |
Simbolo | Significato |
---|---|
E | Entitį |
R | Relazione |
I | Operazione interattiva |
B | Operazione batch |
L | Operazione di lettura |
G | Operazione di controllo integritį referenziale |
M | Operazione di modifica |
D | Operazione di cancellazione |
A | Operazione di aggiunta |
X | Numero di tipologie di piatto (numero di portate differenti) |
Ci sono ulteriori note da fare:
Concetto | Tipo | Frequenza |
---|---|---|
Inserimento Ordine (prevede anche la stampa) |
I | per ogni Ordine |
Cancellazione Ordine | I | rara |
Modifica Ordine | I | rara |
Abilitazione Ordine | I | per quasi ogni Ordine |
Evasione Ordine (prevede la stampa dell'ordine con i tempi) |
I | per ogni Ordine |
Inserimento Volontari | I | per ogni Volontario (e solo ad inizio manifestazione) |
Modifica Volontari | I | rarissima |
Cancellazione Volontari | I | rarissima (e comunque da effettuare a DB ``scarico'' per evitare incongruenze) |
Inserimento Piatto (e solo ad inizio manifestazione) |
I | per ogni Piatto |
Modifica Piatto | I | rarissima |
Cancellazione Piatto | I | rarissima (e comunque da effettuare a DB `scarico'' per evitare incongruenze) |
Calcolo totali serata | I | una volta a serata |
Calcolo tempi medi e massimi | B | ogni 5/10 minuti |
Concetto | Costrutto | Tipo | Accessi |
---|---|---|---|
Volontario | E | G | 1 |
Piatto | E | L | <=X |
Ordine | E | A | 1 |
Asporto | R | A | 1 (se asporto) |
Storia | R | A | 1 |
Composizione | R | A | <=X |
Concetto | Costrutto | Tipo | Accessi |
---|---|---|---|
Ordine | E | M (modifico Stato) |
1 |
Volontario | E | L | 1 |
Storia | R | A | 1 |
Tavolo | R | A | 1 |
Concetto | Costrutto | Tipo | Accessi |
---|---|---|---|
Ordine | E | M (modifico Stato) |
1 |
Volontario | E | G | 1 |
Piatto | E | L | <=X |
Asporto | R | L | 1 (se asporto) |
Storia | R | A/L | 1 append, 2 o 3 letture a seconda che sia asporto o meno |
Composizione | R | L | <=X |
Tavolo | R | L | 1 |
Concetto | Costrutto | Tipo | Accessi |
---|---|---|---|
Volontario | E | A | 1 |
Concetto | Costrutto | Tipo | Accessi |
---|---|---|---|
Piatto | E | A | 1 |
Concetto | Costrutto | Tipo | Accessi |
---|---|---|---|
Ordine | E | L | tutte le tuple |
Composizione | R | L | tutte le tuple |
Concetto | Costrutto | Tipo | Accessi |
---|---|---|---|
Ordine | E | L | tutte le tuple |
Storia | R | L | tutte le tuple |
Prosegui ai cenni di progettazione fisica
2 | 3 | 5 |
LinuxSagra v1.0.0 (C) Marco Gaiarin | 12:00:00 | Ritorna al Menu |