Starthilfe MySQL

Hoi Experden :smile:

Ich darf/muss mich mit MySQL auseinandersetzen als DB für Access.
Nun habe ich zwar Erfahrungen mit Datenbanken aber erstens ist das etwas her und zweitens ist MySQL Neuland für mich.

Alles ist installiert und läuft.
Doch bei den Tabellen- und Felddefinitionen habe ich deutlich Startprobleme.

Es handelt sich dabei um eine reine kaufmännische Lösung. An sich nicht Wildes wenn man sich mit SQL auskennt :smile:

Sind nachfolgende Variabelentypen / Primary Keys und Index halbwegs sinnvoll? :smile:

Tabelle-1
Kunden\_ID MEDIUMINT Primary-Key
Level Bit (Wert 1 - 9)
Anrede TINYTEXT
Vorname VARCHAR(20) Index
Nachname VARCHAR(30) Index
Geburtsdatum DATE
Strasse VARCHAR(40)
Hausnummer TINYTEXT
Plz TINYINT(5)
Ort VARCHAR(40)

Tabelle-2
Telefonnmmer VARCHAR(15) Primary-Key
Fax VARCHAR(15)
Email VARCHAR(50)
Kunden\_ID MEDIUMINT

Tabelle-3 (2ter Ansprechpartner)
Telefonnummer VARCHAR(15) Primary-Key
Fax VARCHAR(15)
Email VARCHAR(50)
Kunden\_ID MEDIUMINT

Ohne Tabelle
Preis DOUBLE(6,2)

Gibt es darüber hinaus ein Fortgeschrittener / Experte (MySQL) in Hamburg der Zeit / Lust hätte mir gelegentlich zur Hand zu gehen?

Klar geht es auch per Tel oder Mail :smile:

Verregnete Grüße aus Hamburg
Wander

Hallo Wander,

Sind nachfolgende Variabelentypen / Primary Keys und Index
halbwegs sinnvoll? :smile:

Nein

Warum für den ersten und zweiten Ansprechpartner zwei Tabellen? Warum den Primary Key über die Telefon-Nr? Besser:

Tabelle Ansprechpartner
 Kunden\_ID MEDIUMINT \_ Primary-Key
 Prioritaet MEDIUMINT /
 Telefonnmmer VARCHAR(15)
 Fax VARCHAR(15)
 Email VARCHAR(50)

Jetzt wird es suspekt? ¿Eine Information in einer Datenbank ohne Tabelle? Okay, hier fehlt als erstes die Information für was der Preis sein soll (Ware, Rechnung) etc.

Ohne Tabelle
 Preis DOUBLE(6,2)

Übrigens solltest Du nicht so sparsam mit den Wertebereichen sein. Nichts ist schwieriger die Datenbank und das Programm entsprechend auf größere Datentypen anzupassen.

MfG Georg V.

P.S. Kein Hamburger, der Rest würde aber schon passen

Hi

Tabelle-1
Kunden_ID MEDIUMINT Primary-Key
Level TinyInt //Bit (Wert 1 - 9)
Anrede Enum //TINYTEXT
Vorname VARCHAR(20) Index
Nachname VARCHAR(30) Index
Geburtsdatum DATE
Strasse VARCHAR(40)
Hausnummer VARCHAR (4) //TINYTEXT
Plz VARCHAR (5) wenn es nur für Deutschland ist//TINYINT(5)
Ort VARCHAR(40)

Tabelle-2
ID MEDIUMINT Primary Key
Telefonnmmer VARCHAR(15)
Fax VARCHAR(15)
Email VARCHAR(50)
Kunden_ID MEDIUMINT

Tabelle-3 (2ter Ansprechpartner)
ID MEDIUMINT Primary-Key
Telefonnummer VARCHAR(15)
Fax VARCHAR(15)
Email VARCHAR(50)
Kunden_ID MEDIUMINT

Ohne Tabelle
ID MEDIUMINT Primary Key
Preis DOUBLE(6,2)

Ich hab das noch so gelernt das man in MySQL Datenbanken immer eine ID drin sein sollte die autoincrement ist und Primary Key

Also das wäre mein Vorschlag für die Tabellen. Wobei die Indizies noch nicht gesetzt sind da ich dort nach den Abfragen gehen würde. Und auf die Daten die du Abfragst dementsprechend die Indizies setzen.

Gruß Lamer

Hi!

Nichts ist schwieriger die Datenbank und das Programm
entsprechend auf größere Datentypen anzupassen.

Naja, die Datenbank selber ist sehr einfach angepaßt und in den Programmen sollten halt die DB-Felder mit den Datentypen (und deren Skalierung) definiert sein.

Umgekehrt (also das Verkleinern des Wertebereiches) wird’s schon happiger - oder gar Typumstellung von VARCHAR auf NUMBER oder so :smile:

Grüße,
Tomh

Hi Lamer,

ok, dass habe ich verstanden und macht ja auch Sinn. Eigentlich hätte es auch so drin stehen sollen :smile:
Danke auch für den Tipp mit den Indiezes!

Sonniges aus Hamburg
Wander

Hoi Georg,

das mit den 2ten Ansprechpartner, da gebe ich Dirn Rwecht. Man kann es mit der Normalisierung auch übertreiben :smile:

Allerdings habe ich dass mit der Priorität:

 Kunden\_ID MEDIUMINT \_ Primary-Key
 Prioritaet MEDIUMINT /

nicht ganz verstanden. Wofür das Feld?

Sonniges aus HH
Wander