From 6b2567a50e7320bbab82bb10b53065633cb2153c Mon Sep 17 00:00:00 2001 From: Stefano Pigozzi Date: Sun, 12 Apr 2020 02:52:42 +0200 Subject: [PATCH] Aggiorna... un po' di tutto --- Autoassociazione.md | 12 ++--- Images/Alexandria.pdf | Bin 4029 -> 0 bytes Images/titolo.pdf | Bin 26112 -> 0 bytes Makefile | 13 +++++ README.md | 47 ++++++++---------- chiaviesterne.md | 13 +++++ .../autoassociazione.png | Bin img/chiaviesterne.png | Bin 0 -> 13955 bytes 8 files changed, 53 insertions(+), 32 deletions(-) delete mode 100644 Images/Alexandria.pdf delete mode 100644 Images/titolo.pdf create mode 100644 Makefile create mode 100644 chiaviesterne.md rename Images/Autoassociazione.png => img/autoassociazione.png (100%) create mode 100644 img/chiaviesterne.png diff --git a/Autoassociazione.md b/Autoassociazione.md index 54483e4..1994ebc 100644 --- a/Autoassociazione.md +++ b/Autoassociazione.md @@ -1,13 +1,13 @@ -# Esempio di autoassociazione +# Identificazione delle autoassociazioni -Nel progetto alexandria, ogni elemento (libro, film o videogioco che sia) è collegato ad una sua pagina in cui vengono visualizzate alcune informazioni salienti quali l'autore, la casa produttrice o simili. +Nel progetto `alexandria`, ogni libro, film o videogioco è collegato ad una sua pagina in cui vengono visualizzate alcune informazioni salienti su di esso quali l'autore, la casa produttrice o simili. -Oltre alle informazioni già presenti in ciascuna pagina, sarebbe stato utile all'utente avere, per ogni libro, film o videogioco, anche una lista di elementi ad esso correlati, come ad esempio il sequel di un film, o un libro ambientato nello stesso universo narrativo. +Oltre alle informazioni già presenti in ciascuna pagina, si è pensato che sarebbe stato utile all'utente avere, per ogni libro, film o videogioco, anche una lista di elementi ad esso correlati, come ad esempio i sequel di un film, o altri libri ambientati nello stesso universo narrativo. -Perciò è stato deciso di inserire, per ognuna di queste tre categorie, una autoassociazione come quella in figura: +Pertanto si è deciso di inserire, per ognuna di queste tre categorie, una autoassociazione come quella in figura: -![](https://raw.githubusercontent.com/Steffo99/alexandria/master/Images/Autoassociazione.png) +![](/img/autoassociazione.png) Un altra opzione precedentemente presa in considerazione fu quella di inserire un'unica autoassociazione, in corrispondenza dell'entità Elemento. -Questa opzione venne però scartata per ragioni di logica. L'entità Elemento, infatti, rappresenta una singola _istanza_ di un libro, film o videogioco, e sarebbe stato insensato collegare ciascuna istanza a tutte le altre, servivano entità più generali. \ No newline at end of file +Questa opzione venne però scartata per ragioni di logica. L'entità Elemento, infatti, rappresenta una singola _istanza_ di un libro, film o videogioco, e sarebbe stato insensato collegare ciascuna istanza a tutte le altre, in quanto ciò avrebbe portato a un numero elevatissimo di collegamenti. diff --git a/Images/Alexandria.pdf b/Images/Alexandria.pdf deleted file mode 100644 index a426eb0767600d7808ac124bdca485831c3de04f..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 4029 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 Ud;M5x8HgPIt|%<5Wvos4f4`Bf;{X5v diff --git a/Makefile b/Makefile new file mode 100644 index 0000000..5aaeec7 --- /dev/null +++ b/Makefile @@ -0,0 +1,13 @@ +all: descrizione.pdf glossario.pdf autoassociazione.pdf chiaviesterne.pdf + +descrizione.pdf: descrizione.md + pandoc -o descrizione.pdf descrizione.md + +glossario.pdf: glossario.md + pandoc -o glossario.pdf glossario.md + +autoassociazione.pdf: autoassociazione.md + pandoc -o autoassociazione.pdf autoassociazione.md + +chiaviesterne.pdf: chiaviesterne.md + pandoc -o chiaviesterne.pdf chiaviesterne.md diff --git a/README.md b/README.md index b0e993f..c66ff88 100644 --- a/README.md +++ b/README.md @@ -12,32 +12,27 @@ Made as a collaboration between [@Steffo99](https://github.com/Steffo99/) and [@ The specification for the project is available [in the `spec.pdf` file](/spec.pdf). -## Progress +## Tasks - [x] [Descrizione](/descrizione.md) - [x] [Glossario](/glossario.md) - - [x] Utenti - - [x] Elementi - - [x] Recensioni - - [x] Libri - - [x] Film - - [x] Giochi -- [ ] Progettazione concettuale - - [x] [Schema scheletro](/schema-scheletro.drawio) - - [ ] Diagrammi ER - - [ ] Schema ER finale -- [ ] Progettazione logica - - [ ] Eliminazione delle gerarchie - - [ ] Selezioni chiavi primarie - - [ ] Trasformazione degli attributi composti o multipli - - [ ] Traduzione di entità e associazione in schemi di relazioni - - [ ] Verifica di normalizzazione -- [ ] Operazioni previste dalla base di dati - - [ ] Creazione - - [ ] Inserimento - - [ ] Interrogazione - - [ ] Modifica - - [ ] Eliminazione -- [ ] Extra - - [x] Dare un nome al progetto - - [ ] Unire i file markdown in un unico .pdf +- [x] [Schema scheletro](/schema-scheletro.drawio) +- [x] [Identificazione delle autoassociazioni](/autoassociazione.md) +- [x] [Identificazione delle chiavi esterne](/chiaviesterne.md) +- [ ] ...? +- [x] [Schema finale](/schema-finale.drawio) + +## Compiling + +### Requirements + +- [Pandoc](https://pandoc.org/) +- [MiKTeX](https://miktex.org/) + +### Instructions + +To create PDF files from the Markdown sources in this project, you can run the Makefile with the `make` command, or compile them manually with the following command: + +```bash +pandoc -o filename.pdf filename.md +``` diff --git a/chiaviesterne.md b/chiaviesterne.md new file mode 100644 index 0000000..fcbb371 --- /dev/null +++ b/chiaviesterne.md @@ -0,0 +1,13 @@ +# Identificazione delle chiavi esterne + +In `alexandria`, ogni utente potrà pubblicare una recensione riguardante un qualsiasi elemento della sua libreria (libro, film, videogioco...), con un testo e una valutazione da 0 a 100. + +Le recensioni di ogni utente saranno visualizzate nella pagina del libro, film o videogioco che esse riguardano, e nella pagina del profilo dell'utente che le ha pubblicate. + +Si è pensato sarebbe stato appropriato permettere alle recensioni di essere associate agli elementi della libreria di ogni utente. + +![](/img/chiaviesterne.png) + +Essendo la relazione `riguardante` tra `Elemento` e `Recensione` una relazione opzionale 1 a 1, si è deciso di utilizzare come chiave dell'entità `Recensione` l'ID dell'`Elemento` che riguarda. + +Questa scelta rende semplici e veloci le interrogazioni per trovare recensioni create da uno specifico utente e recensioni riguardanti un dato libro, film o videogioco: in entrambi i casi, è richiesto l'uso di un solo `JOIN`. diff --git a/Images/Autoassociazione.png b/img/autoassociazione.png similarity index 100% rename from Images/Autoassociazione.png rename to img/autoassociazione.png diff --git a/img/chiaviesterne.png b/img/chiaviesterne.png new file mode 100644 index 0000000000000000000000000000000000000000..63cd225083ea6803c44197692290fc378cdd8311 GIT binary patch literal 13955 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 a+wt>Xsz+N+f-jEEJ95zEK=%G~SN|Ws-#wTB literal 0 HcmV?d00001