PhpMyAdmin Tabelle: Muss der Primärschlüssel ein Integer sein oder gibt es noch eine andere Lösung?

3 Antworten

Vom Beitragsersteller als hilfreich ausgezeichnet

Ich würde dir raten ID's zu verwenden, aber wenn du unbedingt den Fitnessstudio Namen als ID haben willst, musst du bei fname den A_I deaktivieren (bei dir ist da ein hacken). A_I ist der Auto-Increment, und bei dem Datentyp varchar schmeißt er dir ein Fehler da er ein INT ertwartet. Wenn du A_I deaktivierst sollte es funktionieren.


akitashi60 
Beitragsersteller
 02.07.2021, 17:44

Aber es bleibt als primärschlüssel? Weil unser lehrer meinte, dass der primärschlüssel auto_increment ist

0
Ragnar1552  02.07.2021, 17:49
@akitashi60

Ja, du kannst es trotzdem als Primarschlüssel definieren, bei der Tabellenansicht unter dem Reiter "mehr". Auto Increment wird zwar bei ID Spalten verwendet, um die Identifikationsnummer hochzuzählen, aber nicht alle ID Spalten müssen Auto Increment haben. Auto Increment zählt einen vordefinierten INT Wert hoch, bei den meisten Fällen zählt er immer eins hoch. Bei deinem Fall zählst du ja nichts hoch, du hast einen fixen String Wert als Identifikation in der Tabelle.

0
akitashi60 
Beitragsersteller
 02.07.2021, 17:52
@Ragnar1552

Ok da hat es mein lehrer falsch erklärt, weil er auto_increment mit primärschlüssel gleichsetzte. Danke dir

0
akitashi60 
Beitragsersteller
 02.07.2021, 18:01
@Ragnar1552

Hätte noch ne frage. Wenn ich jetzt eine neue tabelle erstellen will, werden automatisch 4 spalten vorgegeben, wie kann ich da eine entfernen?

edit: hab schon gefunden

0

Du machst Dir da Gedanken, die unnötig sind. Einfach eine ID als INT anlegen. Das schadet überhaupt nicht. Selbst wenn Du diese Spalte nicht benutzt. Alle anderen Felder kannst Du ganz normal auslesen. :-)


akitashi60 
Beitragsersteller
 02.07.2021, 17:39

Und das wird dann der primärschlüssel in jeder tabelle?

0
akitashi60 
Beitragsersteller
 02.07.2021, 17:44
@tanteerna68

und in den anderen tabellen keine IDs wenn ich die nicht brauche?

0
tanteerna68  02.07.2021, 17:46
@akitashi60

Ich glaube, dass Du das Grundverständnis über Datenbanken nicht so ganz hast, oder?
Stell Dir eine Exceltabelle vor. die allererste Spalte sind die Nummerierungen der Zeilen. Diese wird automatisch vergeben. Wenn Du mit der Exceltabelle arbeitest, interesiert dich diese Spalte auch nicht, aber dennoch gibt es sie. Das kannst Du mit einer DB und deren Tabellen genauso machen. :-)

0
akitashi60 
Beitragsersteller
 02.07.2021, 17:56
@tanteerna68

Es ging mir darum, dass dann jeder primärschlüssel gleich hieße. In der schule setzen wir nicht immer IDs als primärschlüssel sondern auch mal anderes, halt etwas womit man es eindeutig identifizieren kann. Aber unser lehrer erklärt halt nie wirklich was

0
tanteerna68  02.07.2021, 18:02
@akitashi60

Lass Dir per Auto_Increment ID-Nummern vergeben. Du musst sie ja nicht zwangsläufig benutzen. Du kannst in einem anderen Feld die Studionamen aufführen und auch danach suchen.

Ja, ich verstehe dein Problem, wenn Du jemanden als Lehrer hast, der Dir dir Grundlagen nicht richtig erklärt.

Das mit den IDs macht man aber genau deswegen: Es ist eindeutig. Auto_Increment deswegen, damit vielleicht gelöschte IDs nicht erneut vergeben werden und es eben eindrutig ist. Einen Namen als eindeutiges Merkmal zu benutzen finde ich schwierig. Schreibweise könnte abweichen, nur ein Beispiel.

1

Du solltest IMMER eine ID nutzen ... als INT!

Alles andere macht keinen Sinn und funktioniert in der Regel auch nicht!

Also lege noch eine ID-Spalte mit Auto_Increment an! Fertig!

Woher ich das weiß:Hobby – Programmierer, EDV, ... seit den 80er :)

akitashi60 
Beitragsersteller
 02.07.2021, 17:37

In jeder tabelle eine ID? Aber im Zusammenhang mit dem fitnessstudio macht es doch wenig sinn

0