Du bist nicht angemeldet.

Stilllegung des Forums
Das Forum wurde am 05.06.2023 nach über 20 Jahren stillgelegt (weitere Informationen und ein kleiner Rückblick).
Registrierungen, Anmeldungen und Postings sind nicht mehr möglich. Öffentliche Inhalte sind weiterhin zugänglich.
Das Team von spieleprogrammierer.de bedankt sich bei der Community für die vielen schönen Jahre.
Wenn du eine deutschsprachige Spieleentwickler-Community suchst, schau doch mal im Discord und auf ZFX vorbei!

Werbeanzeige

DasBlub

Alter Hase

Beiträge: 802

Wohnort: Schweiz

Beruf: Programmierer

  • Private Nachricht senden

41

16.11.2010, 10:42

der vorschlag von nox entspricht der 3. NF und ist anratenswert.
die 3. normalform sollte immer genommen werden, ausnahmen bilden nur DWHs, wo man die daten immer in einer gewissen konstellation benötigt und wo sie auch nicht mehr geändert werden.

KeksX

Community-Fossil

Beiträge: 2 107

Beruf: Game Designer

  • Private Nachricht senden

42

16.11.2010, 14:12

@DasBlub:
Der Vorschlag von Nox entspricht ja nichtmal der 1. Normalform, wie kann er also dann der 3. NF entsprechen? So einfach ist es bei einem Vokabeltrainer leider nicht ;)
Vokabeln sind nicht nur Worte, sondern auch Phrasen. Die auch in eine Tabelle Worte zu stecken oder gar in eine Spalte(hier wäre der Widerspruch zur 1. NF) wäre nicht förderlich und führt zu miesen Ergebnissen.
Also entweder du gibst sämtliche "Hilfswörter" vor und machst den Vokabeltrainer zu einer Farce oder du überlegst dir, wie du effektiv Worte, Phrasen und Wortkombinationen(mit Sinn) etc. trennst :].

Datenbanken entwerfe ich immer so:

1. Was muss gespeichert werden?
- Nur Entitäten entwerfen!
2. Was müssen diese Entitäten enthalten?
- Nur Attribute entwerfen!
3. Erstes ER-Diagramm
Hier evtl. schon eine Umsetzung in eine DB, ansonsten ER-Diagramm ausarbeiten
4. Erste Datensätze einfügen und testen. Fehler kann man im ER-Diagramm nie ausschließen(es sei denn jemand wirft mal nen 2. Blick druff) und von daher wirst du, falls nötig, wieder zu Schritt 3 gehen müssen. :P


Von MS Access kann ich übrigens, falls es keine Vorgabe ist, nur abraten.
Man muss nicht alles mit VisualStudio verbinden.
PHPMyAdmin ist imho das beste, was du dir antun kannst (vllt. mit XAMPP? Das wäre gleich noch eine Übung!), aber natürlich nur, wenn es auch Sinn macht. Aber offline-Datenbanken sind sowieso nur begrenzt sinnvoll :P (Ich hab den Thread nur überflogen).
WIP Website: kevinheese.de

Nox

Supermoderator

Beiträge: 5 272

Beruf: Student

  • Private Nachricht senden

43

16.11.2010, 14:29

@KeksX gut wenn du noch unbedingt Phrasen mit drinne haben willst: t_phrase(id_p, id_word, pos), t_phrase_phrase(id_p1,id_p2). Bitte schön ;) . Ne mal im Ernst. Phrasen haben ganz oft eine sehr eigenständige Bedeutung, weshalb ich dafür plädieren würde, sie als "word" einzutragen, auch wenn sie selbst eigentlich aus worten bestehen.
PRO Lernkurs "Wie benutze ich eine Doku richtig"!
CONTRA lasst mal die anderen machen!
networklibbenc - Netzwerklibs im Vergleich | syncsys - Netzwerk lib (MMO-ready) | Schleichfahrt Remake | Firegalaxy | Sammelsurium rund um FPGA&Co.

verrueckt1993

Frischling

Beiträge: 85

Beruf: Informationstechnischer Assistent Fachrichtung AE, 2. Jahr

  • Private Nachricht senden

44

16.11.2010, 14:30

@KeksX: da stimme ich dir voll zu, was die Planung und die Normalformen angeht.

Erstellen der Datenbank wäre mit phpMyAdmin und XAMPP auch sinnvoll, darauf vom Programm aus zugreifen würde ich persönlich mit C#, da es sowohl eine Datenbankschnittstelle (ADO.NET) als auch ein GUI-Toolkit (WPF, oder falls man WPF nicht kann, Winforms *urgh*) mitliefert, sodass man nur eine Sprache für den Kram braucht. Dazu kommt, dass Stabilität bei einem Vokabeltrainer weniger eine Rolle spielt als Performance (imo das beste Anwendungsbebiet für Bytecodesprachen wie C# oder Java).

DasBlub

Alter Hase

Beiträge: 802

Wohnort: Schweiz

Beruf: Programmierer

  • Private Nachricht senden

45

16.11.2010, 14:50

KeksX, wie Nox schon gesagt hat, sind pharsen speziell, weshalb ich sie als wort behandeln würde.

evtl. als kleinen hinweis zu meinem hintergrund: ich arbeite täglich mit terabyte-grossen oracle datenenbanken mit millionen von records (über alle tabellen wohl eher milliarden) und behaupte deshalb mal, mich mit datenbanken und SQL auszukennen.

idontknow

unregistriert

46

16.11.2010, 14:53

@NoX, jo mal schauen dein Vorschalg ist definitiv sehr einleuchtend :D.

@verrueckt1993: Naja es gibt C# Wrapper für SQLLite mit denen das ganze kein großes Problem darstellen sollte (natürlich werden die DB dann lokal abgespeichert, sprich kein Web Ramsch ect. War auch eine der Ursprungsideen!

Synchronisation übers Web wäre ne Idee, aber eigendlich unwichtig weils a) erstmal nur als Lernporjekt fürn eigenen Gebrauch von mir angedacht war und b) man eine Webanbindung auch nochnspäter einbauen könnte!

KeksX

Community-Fossil

Beiträge: 2 107

Beruf: Game Designer

  • Private Nachricht senden

47

16.11.2010, 14:55

@KeksX gut wenn du noch unbedingt Phrasen mit drinne haben willst: t_phrase(id_p, id_word, pos), t_phrase_phrase(id_p1,id_p2). Bitte schön ;) . Ne mal im Ernst. Phrasen haben ganz oft eine sehr eigenständige Bedeutung, weshalb ich dafür plädieren würde, sie als "word" einzutragen, auch wenn sie selbst eigentlich aus worten bestehen.

Ich wollte keineswegs dein Wissen in Frage stellen, oder sowas, sondern nur darauf hinweisen, dass auch so etwas "einfaches" wie ein Vokabeltrainer ganz schön knifflig sein kann und man nicht den Fehler machen soll, das auf die leichte Schulter zu nehmen, wenn man das zum ersten Mal macht.

Im Übrigen war das eine Falle. Mit den Phrasen ist eine erfüllte 1. NF einfach UNMÖGLICH! (Das Problem hast du ja schon genannt ^^) - aber ein Vokabeltrainer muss sowas halt können, wenn er vollen Funktionsumfang haben will ^^
WIP Website: kevinheese.de

Nox

Supermoderator

Beiträge: 5 272

Beruf: Student

  • Private Nachricht senden

48

16.11.2010, 16:22

"Mit den Phrasen ist eine erfüllte 1. NF einfach UNMÖGLICH!" hmm ich muss gestehen, dass ich das nicht verstehe, denn mit den zwei von mir genannten Zusatztabellen sollte doch eig die erste 1. NF Erfüllung möglich sein. Im Prinzip könnte man alles in die erste NF pressen afaik (einfach jede spalte in eine Tabelle und dann relationen dazwischen).
PRO Lernkurs "Wie benutze ich eine Doku richtig"!
CONTRA lasst mal die anderen machen!
networklibbenc - Netzwerklibs im Vergleich | syncsys - Netzwerk lib (MMO-ready) | Schleichfahrt Remake | Firegalaxy | Sammelsurium rund um FPGA&Co.

DasBlub

Alter Hase

Beiträge: 802

Wohnort: Schweiz

Beruf: Programmierer

  • Private Nachricht senden

49

16.11.2010, 16:40

nur weil du einen text statt einem wort in dem feld speicherst bist du trotzdem noch in der 3. NF, da der text eine eigenständige entität darstellt.

MCP

Alter Hase

Beiträge: 513

Wohnort: Paderborn

Beruf: Software-Entwickler

  • Private Nachricht senden

50

17.11.2010, 10:34

Ich sehe das ebenfalls so. Das Design von Nox ist imho schon in der dritten Normalform.
Wobei ich auch dazu übergehen würde, Phrasen in eine Extra-Tabelle auszulagern. Wenn man für jede Sprache eine Tabelle macht und dann eine weitere Tabelle für jede Relation zwischen 2 Sprachen, dann steigt die Anzahl der Tabellen exponentiell...

Werbeanzeige