Dafür habe ich MySQL Workbench verwendet. Damit ist so etwas in einer Minute gemacht.
Die Sache mit der Vektorgrafik wurde gemeldet. 599
Anmeldungsdatum: Beiträge: 965 Wohnort: Österreich |
Dafür habe ich MySQL Workbench verwendet. Damit ist so etwas in einer Minute gemacht. Die Sache mit der Vektorgrafik wurde gemeldet. 599 |
||||
(Themenstarter)
Anmeldungsdatum: Beiträge: Zähle... |
Also habe jetzt für alles Singular verwendet. Und die Tabellen nach oberen Vorschlag mit phpMyAdmin angelegt. Dort sieht es jetzt so aus siehe Anhänge. |
||||
Anmeldungsdatum: Beiträge: 965 Wohnort: Österreich |
Wozu |
||||
(Themenstarter)
Anmeldungsdatum: Beiträge: 41 |
Keine Ahnung geplant war es nicht so, hat sich beim erstellen der Spalte selbständig so eingerichtet. Wenn ich es jetzt versuche zu ändern geht das einfach nicht. Hab mal zwei Bilder mit den Möglichkeiten Angehängt. Wenn ich bei "Standart" kein(e) auswähle und bei "Attribute" nichts und dann speichere, ist alles wie zuvor. |
||||
Anmeldungsdatum: Beiträge: 965 Wohnort: Österreich |
Kannst du den Standard so lassen wie er ist und im zweiten Feld "nichts" auswählen? Dann sollte das passen. |
||||
(Themenstarter)
Anmeldungsdatum: Beiträge: 41 |
Hat geklappt. Danke die Kombi hatte ich noch nicht getestet 👍 |
||||
Anmeldungsdatum: Beiträge: 965 Wohnort: Österreich |
Ich Zitiere aus der MySQL Doku;
|
||||
(Themenstarter)
Anmeldungsdatum: Beiträge: 41 |
Nächste Frage. Bis jetzt habe ich meistens in VB programmiert dort habe ich einen Möglichkeit die Scripte "Live" mit F8 im Einzelschritt Modus durchzutesten. |
||||
Anmeldungsdatum: Beiträge: 965 Wohnort: Österreich |
Dazu kann ich wenig sagen da ich nie mehr als einen 3-Zeiler mit Bash erledigt habe. Ich arbeite normalerweise mit Python. Ich glaube mittels
kann man eine Art Tracemodus aktivieren. Da kann dir aber jemand anderes besser helfen. |
||||
Projektleitung
Anmeldungsdatum: Beiträge: 12829 |
Ja, das ist das Mittel der Wahl. Ich schreibe auch oft so etwas oben in mein Skript:
Dann kann ich das Skript aufrufen mit Oft ist auch sinnvoll Single-Step ist mir nicht bekannt, aber vielleicht findet sich ja was im bash Referenzhandbuch. |
||||
Anmeldungsdatum: Beiträge: 2669 Wohnort: Hamburg |
Nettes Diskussion und die beste Antwort hat spannende und auch durchaus überzeugende Punkte, aber: Das Beispiel mit der Bag finde ich genau verkehrt erklärt. Das Konzept ist natürlich Singular (die "Tasche") - da wäre das Äquivalent aber die "Tabelle". Der Name einer konkreten Sammlung von Daten würde man in Quellcode immer im Plural benennen, wie eben z.B. In einer Tabelle "users" beschreibt *ein* Datensatz natürlich das singuläre Konzept eines "user", was wiederum das weiter unten angeführte Argument mit dem ORM ad absurdum führt. Denn das Mapping in ORM "mappt" ja eben gerade genau einen Datensatz auf ein zugehöriges Objekt. Ich weiß, dass dort auch aufgrund von "convention over configuration" oftmals bei Tabellen der Singular benutzt wird, aber rein inhaltlich sehe ich da keine Notwendigkeit. (Leider passt das bei der Übersetzung von Bag ins deutsche wieder nicht, da man wirklich eher Kartoffel-Sack sagen würde 😠 Nimmt man aber ein "Fach" oder "Regal", so würde man sicherlich eher den Plural wählen, also "Äpfel", "Kartoffeln", "Akten", "DVDs", "Bücher" usw.) Natürlich ist SQL Mengen basiert und somit nicht unbedingt 1:1 in die Programmierung zu übertragen, aber schon in der Mengenlehre in der Schule benutzt man iirc durchaus eher den Plural, wenn es nicht gerade um "A" oder "B" geht 😀 (Also die "Menge aller Schüler", usw.) Im übrigen sagt der Plural nicht zwingend etwas über die tatsächliche Anzahl an Datensätzen aus, wie in dem Thread behauptet wird. Es kann durchaus einen Container für etwas geben, der leer ist, aber potenziell beliebig viele Dinge aufnehmen kann. Und in SQL kann man afaik nirgends die maximale oder gar minimale Füllmenge einer Tabelle angeben, oder? Der Aspekt mit der schwereren Schreibweise für Plurale im Englischen ist natürlich nicht verkehrt, aber: Wie oft legt man schon neue Tabellen an? Eher weniger, als dass man mit deren vorhandenen Namen arbeitet. Insofern ist das Problem wohl nicht so gravierend; und Altgriechisch wird wohl niemand für seine Tabellennamen nutzen, wo es Singular und Pluralform von Wörtern gibt, die keinen Buchstaben gemeinsam haben und es zu einem Auffindungsproblem führen könnte 😉 |
||||
Projektleitung
Anmeldungsdatum: Beiträge: 12829 |
Ich bin da verhältnismäßig leidenschaftslos. Man sollte es nur konsistent halten. |
||||
Anmeldungsdatum: Beiträge: 2669 Wohnort: Hamburg |
Naja, überzeugen muss ich auch keinen; ich persönlich empfinde den Plural einfach als angenehmer ☺ (Und mag es nicht, wenn andere genau das *dogmatisch* abschmettern - vor allem, wenn die Argumente in beide Richtungen anwendbar wären 😉
👍 |
||||
(Themenstarter)
Anmeldungsdatum: Beiträge: 41 |
Hallo zusammen ich mal wieder:-) Ich bin gerade dabei das Script zu schreiben aktuell bin ich an dieser Stelle. Sinn soll sein in der Standort Tabelle nachzusehen ob der Standort schon angelegt ist, wenn nicht soll er in die Tabelle eingefügt werden und die ID generiert werden. Ich denke das Abfragen sollte so ungefähr passen und wenn $Return dann leer ist soll der Eintrag generiert werden. Meine Frage wir ID dann Automatisch bestückt oder muss ich das anweisen? Eventuell könnt ihr mir ja sagen ob mein Gedanke so richtig ist, und mir beim Insert mal einen Tip zu geben wie ich das ausführe ?
Gruß Mike |
||||
Projektleitung
Anmeldungsdatum: Beiträge: 12829 |
😬
Eine generelle Anmerkung: das öffnet die Tür für eine Race-Condition, falls es vorkommen kann, dass mehrere Clients parallel einfügen. Das kann man dadurch absichern, dass man erst den INSERT macht (und den Fehler im Fall, dass der Eintrag bereits besteht, abfängt) und dann einen SELECT macht. Bei der Reihenfolge, die Du vorschlägst, kann es trotzdem passieren, dass zwei gleichzeitig einfügen wollen und dann knallt es. Ob das in Deinem Fall ein Problem ist, weiß ich nicht. Man kann auch mit so etwas leben. Ich wollte nur mal darauf hingewiesen haben. ☺
Ich kenne mich jetzt nicht so gut mit MySQL aus. In PostgreSQL würde ich vermutlich eine Funktion schreiben, die das alles erledigt. Das spart dann nämlich einen Rountrip zwischen Client und Datenbank. Ah, MySQL kann das auch.
Je länger ich über das Projekt nachdenke, desto mehr glaube ich, dass man das nicht in der Shell sondern mit einer richtigen Programmiersprache (Python, Ruby...) tun sollte... Ciao robert |