1
Fork 0
mirror of https://github.com/Steffo99/alexandria.git synced 2024-11-21 21:34:19 +00:00

Aggiorna... un po' di tutto

This commit is contained in:
Steffo 2020-04-12 02:52:42 +02:00
parent d5a647c989
commit 6b2567a50e
8 changed files with 53 additions and 32 deletions

View file

@ -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.
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.

Binary file not shown.

Binary file not shown.

13
Makefile Normal file
View file

@ -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

View file

@ -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 <!--Magari usando pandoc?-->
- [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
```

13
chiaviesterne.md Normal file
View file

@ -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`.

View file

Before

Width:  |  Height:  |  Size: 8.1 KiB

After

Width:  |  Height:  |  Size: 8.1 KiB

BIN
img/chiaviesterne.png Normal file

Binary file not shown.

After

Width:  |  Height:  |  Size: 14 KiB