Re: Diagrammi E-R (Entità – Relazione) – Basi di dati

#74128
Up
0
Down
::


Non è passato molto tempo dal breve successo di una compilazione, che a nuove sfide ed intoppi mi ritrovo.

Il seguente codice:
`\documentclass[a4paper,10pt]{report}
\usepackage{ucs}
\usepackage[utf8]{inputenc}
\usepackage[spanish]{babel}
\usepackage{tikz-er2}

\usetikzlibrary{positioning}
\usetikzlibrary{shadows}

%\tikzstyle{every entity} = [top color=white, bottom color=blue!30,
%draw=blue!50!black!100, drop shadow]
%\tikzstyle{every weak entity} = [drop shadow={shadow xshift=.7ex,
%shadow yshift=-.7ex}]
%\tikzstyle{every attribute} = [top color=white, bottom color=yellow!20,
%draw=yellow, node distance=7em, drop shadow]
%\tikzstyle{every relationship} = [top color=white, bottom color=red!20,
%draw=red!50!black!100, drop shadow]
%\tikzstyle{every isa} = [top color=white, bottom color=green!20,
%&draw=green!50!black!100, drop shadow]

\begin{document}
\begin{tikzpicture}[node distance=15em, every edge/.style={link}]

\node[entity] (autore) {Autore};
\node[attribute] (pid)

{\key{ID}} edge (autore);
\node[attribute] (nome) [below left=0.5cm of autore] {Nome} edge (autore);
\node[attribute] (cognome) [above left=0.5cm of autore] {Cognome} edge (autore);
\node[attribute] (nomepubblico) [above=0.9cm of autore] {NomePubblico} edge (autore);
%\node[attribute] (anex)

{anexo} edge (fono);
%\node[attribute] (number) [below left of=fono, node distance=5em] {number} edge (fono);
\node[attribute] (annonascita) [below=0.7cm of autore] {AnnoNascita} edge (autore);
\node[attribute] (luogonascita) [above right of=autore] {LuogoNascita} edge (autore);
\node[attribute] (annomorte) [above right=0.5 of autore] {AnnoMorte} edge (autore);
\node[relationship] (pertenece)

{Pertenece} edge node[auto,swap] {1:1} (autore);

\node[entity] (depto)

{Depto} edge node[auto,swap] {0:N} (pertenece);
\node[attribute] (iddepto) [above of=depto] {\key{id\_depto}} edge (depto);
\node[attribute] (dname) [above right of=depto] {d\_name} edge (depto);
\node[rectangle, draw=black, fit=(pertenece), inner sep=0em] (ipertenece) {};
\node[relationship] (tieneun) [below of=pertenece] {Ocupa} edge node[auto,swap] {1:1} (pertenece);

\node[entity] (cargo)

{Cargo} edge node[auto,swap] {0:N} (tieneun);
\node[attribute] (idcargo)

{\key{id\_cargo}} edge (cargo);
\node[attribute] (cname) [above right of=cargo] {c\_name} edge (cargo);
\node[attribute] (plevel) [below right of=cargo] {nivel} edge (cargo);

\node[relationship] (responde) [below of=autore] {Responde} edge node[auto,swap] {1:N} (ipertenece);

\node[entity] (pregunta) [below of=tieneun] {Pregunta};
\node[attribute] (idpreg) [below of=pregunta] {\key{id\_preg}} edge (pregunta);
\node[attribute] (ptexto) [below right of=pregunta] {p\_texto} edge (pregunta);
\node[attribute] (pnumber)

{p\_numero} edge (pregunta);

\node[relationship] (tiene) [below of=responde] {Tiene} edge node[auto,swap] {1:N} (pregunta) edge node[auto,swap] {0:N} (responde);
\node[rectangle, draw=black, fit=(tiene), inner sep=0em] (itiene) {};

\node[entity] (alternativa)

{Alternativa} edge node[auto,swap] {1:1} (tiene);
\node[attribute] (idalt) [above of=alternativa] {\key{id\_altern}} edge (alternativa);
\node[attribute] (atexto) [below of=alternativa] {a\_texto} edge (alternativa);
\node[attribute] (anumber) [below right of=alternativa] {a\_numero} edge (alternativa);
\end{tikzpicture}
\end{document}
`

slavato dei colori, mi pone delle difficoltà perché:
1- dovrei innanzitutto ruotare il pdf appena compilato, nel senso che vorrei che le immagini si estendessero per orizzontale e non per verticale;
2- la cosa dura è che come potete vedere nell’entità Autore dovrei aggiungere ancora un paio di attributi, e se penso che le future entità Opera o File ne avranno sulla trentina di attributi io non riesco a capire come potrei distribuirli tutti intorno senza che collidano o si accavallino tra loro. Avete un’idea? io oltre a quei sette-otto attributi non riesco a mettere.

Grazie,
Simone

Go to top