Datenbankanbindung Problem

Installation und Anwendung von Datenbankschnittstellen wie SQLite, PostgreSQL, MariaDB/MySQL, der DB-API 2.0 und sonstigen Datenbanksystemen.
Kalli87
User
Beiträge: 281
Registriert: Montag 10. November 2014, 11:27

Danke sparrow :)
Benutzeravatar
Hyperion
Moderator
Beiträge: 7478
Registriert: Freitag 4. August 2006, 14:56
Wohnort: Hamburg
Kontaktdaten:

BlackJack hat geschrieben:@Kalli87: Wie verwendet man eine Tabelle mit Zeichenketten ohne das die eine Spalte mit IDs hat?
Irgend wie gar nicht (sinnvoll) :mrgreen:

Aber wir wissen doch gar nicht, dass die keine ID haben? Kann ja eine automatisch generierte sein!
encoding_kapiert = all(verstehen(lesen(info)) for info in (Leonidas Folien, Blog, Folien & Text inkl. Python3, utf-8 everywhere))
assert encoding_kapiert
BlackJack

@Hyperion: Doch, wissen wir:
Kalli87 hat geschrieben:ich kann dir sagen das die Tabelle nur eine Spalte hat, nationalität varchar(50)
Keine laufende Nummer oder ähnliches.
Kalli87
User
Beiträge: 281
Registriert: Montag 10. November 2014, 11:27

Die Tabelle braucht ja keine ID, finde ich persönlich total überflüssig eine Spalte mit einer Nummer einzusetzen.
Wenn ich eine hätte wäre es eh "autoincrement" :D
Benutzeravatar
Hyperion
Moderator
Beiträge: 7478
Registriert: Freitag 4. August 2006, 14:56
Wohnort: Hamburg
Kontaktdaten:

Ah... ok! Tja... dann ist das wirklich obskur :D
encoding_kapiert = all(verstehen(lesen(info)) for info in (Leonidas Folien, Blog, Folien & Text inkl. Python3, utf-8 everywhere))
assert encoding_kapiert
Kalli87
User
Beiträge: 281
Registriert: Montag 10. November 2014, 11:27

@Hyperion
Was is jetzt eigentlich obskur?
Steh gerade aufm schlauch, sorry :D
BlackJack

@Kalli87: Eine Tabelle ohne eine ID-Spalte beziehungsweise ein VARCHAR(50) als Primärschlüssel ist obskur.

Edit: Und das dann auch noch als einige Spalte der Tabelle. Wie setzt man das mit anderen Tabellen in Beziehung?
Kalli87
User
Beiträge: 281
Registriert: Montag 10. November 2014, 11:27

Eigentlich dient die Tabelle nur um die Nationalitäten auszulesen und in ein dropdown menü zu packen.
Und das Dropdownmenü hängt in einem Formular was zum Kunden anlegen gedacht is.
Kundentabelle is extra und dort landet dann auch die nationalität.
BlackJack

@Kalli87: Was meinst Du mit in der Kundentabelle landet die Nationalität? Etwa auch als VARCHAR(50)? Genau das wäre ja falsch, denn dort sollte die *ID* von der Nationalität landen und nicht kopierte und damit redundante Daten. Das verletzt die Normalform des Schemas.

Zur Initialisierung von Datenbanken verwendet man normalerweise SQL das in *Dateien* steht und nicht live in die Konsole bei einem textbasierten Datenbankclient getippt wird. Das kann man dann bei solchen Clients entweder in den Client pipen oder den Dateinamen als Argument oder Option beim Aufruf angeben. Das wäre dann auch unabhängig von der Programmiersprache die man am Ende verwendet um die Datein aus der Datenbank zu verarbeiten.
Kalli87
User
Beiträge: 281
Registriert: Montag 10. November 2014, 11:27

Ja ok Blackjack, hast ja vollkommen recht was die Normalform der Datenbank betrifft.

Kennt einer eine vernünftige Oberfläche zum verwalten der Postgres-Datenbank?
Über die Konsole bekomm ich irgendwann die Krise.
BlackJack

@Kalli87: Als GUI-Programm habe ich schon pgadmin3 verwendet. Und als Weboberfläche Adminer.
Kalli87
User
Beiträge: 281
Registriert: Montag 10. November 2014, 11:27

Das Problem ist bei das ich zwar Pgadmin3 starten kann aber mich nicht zur Postgresdatenbank verbinden kann.
Und wenn ich hier im Praktikum nach Hilfe frage was das betrifft, wird sofort nein gesagt.
BlackJack

@Kalli87: Nun das Thema hatten wir ja schon: PostgreSQL ist da in der Grundeinstellung ziemlich sicher konfiguriert was das Anmelden betrifft. Man muss da schon ziemlich genau konfigurieren welche Nutzer wie und von wo darauf zugreifen können. *Das* sollte man dann aber auch drauf haben wenn man mit PostgreSQL arbeitet.
Antworten