Vereinsdatenbank erstellen

Antwort erstellen


BBCode ist eingeschaltet
[img] ist ausgeschaltet
[url] ist eingeschaltet
Smileys sind ausgeschaltet

Die letzten Beiträge des Themas
   

Ansicht erweitern Die letzten Beiträge des Themas: Vereinsdatenbank erstellen

Re: Vereinsdatenbank erstellen

von boser » Fr, 15.02.2013 09:18

juetho hat geschrieben:Während die Mitgliedsnummer durchaus einmal geändert werden kann (der Gärtner bekommt eine andere Parzelle), bleibt die ID unverändert; seine bisherigen Verbrauchsabrechnungen hängen nicht in der Luft, sondern werden weiterhin diesem Mitglied zugeordnet.
das hat nur den Schönheitsfehler, das man dann die Verbrauchswerte nicht den einzelnen Parzellen mehr zuordnen kann.
Selbst diese kleine Datenbank beinhaltet schon viel Diskussionsstoff.
Bei Mitgliedsnummer wechseln, falls das vorkommt, sollte man sich überlegen , ob es nicht geschickter ist noch ein Feld anzufügen, mit dem Namen "Vorherige Nummer", damit man auch sieht, wann sich bei wem die Nummer sich geändert hat. Somit hat man auch die Chronologische Reihenfolge gewahrt. Was wichtig werden kann. :)
Das ist jetzt nur ein Fall, der eintreten kann, deshalb ist die Planung , eins der wichtigsten Sachen. Und wenn man das mehrmals Durchgemacht hat, dann sieht man auch bei dieser Sache bald Licht am Ende des Tunnels. :D

Re: Vereinsdatenbank erstellen

von boser » Fr, 15.02.2013 09:04

Hallo,

die 1:1 - Beziehung macht kein Sinn, da du sonst zu jedem neuen Verbrauchswert eine neues Mitglied einrichten müsstest. Dh. jedes Jahr alle Mitglieder eingeben und deren Verbrauchswerte, nach mehreren Jahren hast du dann x-mal die Mitglieder in der Mitgliedertabelle stehen. Das würde eine Bericht erschweren, der zb. die Verbrauchswerte eines Mitgliedes über x-Jahre darstellt.

Re: Vereinsdatenbank erstellen

von lanius2 » Fr, 15.02.2013 07:30

Hallo Robert,
perfekt, genau das war Fehler, beide hatten unterschiedliche Feldtypen.
Jetzt hat es geklappt. Danke!
Gruß
lanius2

Re: Vereinsdatenbank erstellen

von RobertG » Do, 14.02.2013 15:35

Hallo lanius2,

warum verbindest Du nicht Mitglieder.MitgliedsID mit Verbrauch.MitgliedsID?
Kommst da irgendeine Fehlermeldung?
Häufigste Fehlermeldung: Feldtypen stimmen nicht überein (vermutlich sollten beide "Integer" sein).

Gruß

Robert

Re: Vereinsdatenbank erstellen

von lanius2 » Do, 14.02.2013 15:17

Übung macht den Meister!

Ich habe versucht das Beispiel von boser nachzustellen.

Mit gelingt es jedoch nicht eine 1:n-Beziehung herzustellen. Es geht nur eine 1:1-Beziehung (siehe Anhang).

Warum?
Dateianhänge
Beziehung.PNG
Beziehung.PNG (10.07 KiB) 1142 mal betrachtet

Re: Vereinsdatenbank erstellen

von lanius2 » Do, 14.02.2013 14:17

Ich danke Euch beiden!

Hinweise auf Literatur sind immer willkommen.

Re: Vereinsdatenbank erstellen

von juetho » Do, 14.02.2013 13:22

lanius2 hat geschrieben:Hach, immer diese Anfänger?! :D
Ich wollte dich eigentlich nicht mit noch mehr Informationen zuschütten. Trotzdem soll der Hinweis auf die Einführung in SQL erfolgen. Die Frage nach den Primärschlüsseln wird unter anderem bei der Normalisierung behandelt.

boser hat auf verschiedene Bedeutungen des Primärschlüssels hingewiesen. (Der Begriff Index passt nur bedingt und könnte verwirren; unter einem Index versteht man grundsätzlich jeden Suchbegriff.)

@lanius2
Es ist durchaus sinnvoll, die Mitgliedsnummer als zusätzlichen eindeutigen Index (im Sinne eines Suchbegriffs) festzulegen. Dann kann der Anwender genau nach so einem "vernünftigen" Suchbegriff suchen. Aber alles, was innerhalb der Datenbank mit diesem Datensatz verknüpft ist (beispielsweise alle Abrechnungsdaten), wird ausschließlich über die ID verknüpft. Während die Mitgliedsnummer durchaus einmal geändert werden kann (der Gärtner bekommt eine andere Parzelle), bleibt die ID unverändert; seine bisherigen Verbrauchsabrechnungen hängen nicht in der Luft, sondern werden weiterhin diesem Mitglied zugeordnet.

Ich hoffe, der Sinn wird dir klarer. Jürgen

Re: Vereinsdatenbank erstellen

von boser » Do, 14.02.2013 11:45

Es geht um die eindeutigen Identifizierung eines Datensatzes in einer Datenbank.
Das Löschen von Datensätzen ist eigentlich im strengen Sinn verboten, da sonst Datensätze im leeren Raum stehen können.
Deshalb verwendet man ein Feld "gelöscht am" und damit ist der Datensatz als nicht mehr aktive markiert.
Der Index ist deshalb so wichtig, damit die Beziehung von zwei oder mehreren Tabellen ein eindeutig ist.
Deshalb sollte der Benutzer auch in der Indexierung nicht eingreifen dürfen, weil sonst der Schade sehr hoch seien kann.

Re: Vereinsdatenbank erstellen

von lanius2 » Do, 14.02.2013 11:24

Hm, und wenn der Anwender ja nun genau Daten aus der DB über die Mitgliedsnummer abfragen will, da er ja nur diese kennt, warum gibt es dann diesen Index?

Wird der Datensatz aus irgendeinem Grund mal gelöscht, statt korrigiert, bekommt er ja einen neuen Index.

Ist dieser Index also "nur" für das einwandfreie Funktionieren der DB "in sich" wichtig? Sprich, das die Beziehungen zwischen den Tabellen auch noch z.B. nach Löschung eines Datensatzes funktionieren?

Hach, immer diese Anfänger?! :D

Re: Vereinsdatenbank erstellen

von boser » Do, 14.02.2013 11:01

lanius2 hat geschrieben:@boser
Warum haben MitgliederID und VerbrauchsID eigentlich AutoWert von Dir bekommen?
Hallo Ianius2,

wie Jürgen schon ausführte, hat es etwas mit dem Indexieren von Datensätzen zu tun.
Ich würde es so ausdrücken, jeder Index , den ich oder ein andrer Benutzer verwalten müsste , unterliegt der Fehlerquelle.
Einmal ein Index falsch geschrieben und nicht aufgepasst, kann es so krachen, das nix mehr geht.
Deshalb dieser Automatismus, der einen eine eindeutigen Schlüssel von vorn herein schreibt.

[EDIT]
Ich möchte nicht nach drei Jahren, hunderte Datensätze bei den zwei Tabellen durchsuchen, nur weil ein Index kaputt ist. Das wäre Sklavenarbeit ^ 3 .
[/EDIT]

Re: Vereinsdatenbank erstellen

von juetho » Do, 14.02.2013 10:47

lanius2 hat geschrieben:@boser
Warum haben MitgliederID und VerbrauchsID eigentlich AutoWert von Dir bekommen?
Das kann ich natürlich nicht beantworten. Die Frage muss eigentlich lauten: "Gibt es einen Grund, diese ID nicht auf AutoWert zu setzen?" Die ID als Primärschlüssel hat grundsätzlich keine andere Bedeutung als die Identifizierung eines Datensatzes innerhalb der Datenbank.

In aller Regel muss der Anwender die ID nicht einmal kennen. Dafür kann es z.B. eine manuell erstellte eindeutige Mitgliedsnummer geben. Wenn diese Mitgliedsnummer nach bestimmten Regeln vergeben wird (Eintrittsjahr, Sektion, Parzelle), ist sie als Primärschlüssel sowieso nicht geeignet. Aber der Anwender will diese Nummer sehen und nicht die ID. All das wird vom Entwickler der Datenbank gesteuert.

Jürgen

Re: Vereinsdatenbank erstellen

von lanius2 » Do, 14.02.2013 10:25

@boser
Warum haben MitgliederID und VerbrauchsID eigentlich AutoWert von Dir bekommen?

Re: Vereinsdatenbank erstellen

von lanius2 » Di, 05.02.2013 17:46

Vielen Dank!

Bin erst heute wieder dazu gekommen mal ins Forum zu schauen.

Re: Vereinsdatenbank erstellen

von boser » Fr, 01.02.2013 16:35

Hallo,

ich hab dir schnell mal eine kleine DB erstellt, fürs bessere Verständnis.
Dateianhänge
VereinsDB.odb
(3.73 KiB) 371-mal heruntergeladen

Re: Vereinsdatenbank erstellen

von juetho » Fr, 01.02.2013 15:11

lanius2 hat geschrieben:D.h., auch in der 2. Tabelle ist die Mitgliedsnummer auch der Primärschlüssel?
Nein. In der 2. Tabelle "Verbrauch" ist der Primärschlüssel der AutoWert VerbrauchsID.
Und die beiden Tabellen haben eine 1:1-Beziehung?
Nein, sondern eine 1:n-Beziehung. Für jedes Mitglied gibt es für jedes Jahr einen neuen Eintrag zum Verbrauch.

Jürgen

Nach oben