1:1-Verknüpfung
Gibt es in Ninox auch eine 1:1-Verknüpfung? Braucht man vermutlich fast nie, aber ich habe jetzt so einen Fall:
Ich habe eine Tabelle mit den Buchtiteln und bekomme extern eine Tabelle mit den ISBN zugeliefert.
Jetzt muss ich sie bei der Anlage eines neuen Buchtitels mit einer ISBN verknüpfen, und zwar in beide Richtung eindeutig. Eine ISBN zu einem Buch und umgekehrt ...
Gibt es dafür eine Lösung?
Gruß, Oliver
16 Antworten
-
Soweit mir bekannt, gibt es keine 1:1-Verknüpfungen zwischen Ninox-Tabellen
Was genau spricht denn dagegen, Dein Problem in einer einzigen Tabelle abzuhandeln? -
Es sind zwei Tabellen - die Titeltabelle erstellen wir selbst. Wenn ein neuer Buchtitel geplant wird, wird eine ISBN aus der zweiten Tabelle beigezogen. Dieser Vorgang ist wechselseitig eindeutig, also 1:1.
Es bleiben zwei Tabellen, weil die ISBN auf Vorrat vieler Jahre sind. Deshalb ist es nicht optimal, das in einer Tabelle abzuhandeln. Es wäre dann zu unübersichtlich.
Natürlich kann man immer eine isbn mit copy & paste übernehmen, aber bei der Verknüpfung geht die Information gleich auch in die Gegenrichtung. Daher die Idee
-
Verstehe auch nicht so ganz was daran unübersichtlich ist? Das ist doch nur ein Feld mit der ISBN. Wenn diese immer eindeutig sind, dann kann man doch ein Feld "Buchtitel" und ein Feld "ISBN" machen. Das ist doch nicht unübersichtlich. Genau so kann man das Erscheinungsjahr, den Autor und so weiter eintragen. Aber vermutlich ist der Anwendungsfall nicht ganz deutlich geworden, oder?
-
...sorry, ich habe vielleich ein wenig oft das Wort "doch" eingebaut und so wirkt mein Beitrag vielleicht etwas unfreundlich. War nicht so gemeint :-).
-
Moin Oliver, verstehe ich es richtig, dass du eine Liste mit noch nicht vergebenen ISBN hast und diese dann neuen Titeln zuordnen willst?
Falls ja: Könnte man da nicht mit einer Schaltfläche "ISBN zuweisen" oder so arbeiten, mittels derer die erste ISBN aus der Tabelle geholt, dem aktuellen Buchtitel zugeordnet und dann in der ISBN-Tabelle auch direkt gelöscht wird?
Das Verknüpfen und Speichern des Titels in der ISBN-Tabelle hätte ja keinen Mehrwert. Es sei denn, es gäbe noch mehr Informationen zu den ISBN zu speichern. Denn die Zuordnung Buchtitel <--> ISBN wäre ja schon in der Bücher-Tabelle existent.
Nur so als Idee. Aber vielleicht habe auch ich die Aufgabenstellung nicht richtig verstanden.
-
Hallo Dirk und Axel,
erstmal vielen Dank, und alles bis 20x "doch" geht doch völlig in Ordnung :)
Das Ding mit den ISBN-Listen ist leider tricky. Normalerweise bin ich ja auch dafür, dass so eine 1:1-Info in die selbe Tabelle kommt, völlig klar. Bei den ISBN ist es aber leider so, dass man die Liste von der immens liebenswerten ISBN-Stelle zugeteilt bekommt. Und da gelten strenge Regeln:
Erst bekommt man einen Nummernkreis von 9 ISBN, wenn man sich gründet, das war vor über 20 Jahren. Dann einen von 99 Nummwern, wenn der 9er aufgebraucht ist, das ist auch lange her. Dann einen von 999 Nummern, den nutzen wir jetzt, eine ISBN nach der anderen. Wir haben also bislang drei Print-Nummernkreise, die alle eine völlig verschiedene Stammnummer haben. Es kommt aber noch viel besser: Für eBooks haben wir noch einen komplett separaten Nummernkreis, nochmal 999 ISBNs. Macht also vier Nummernkreise in vier Tabellen.
Deshalb möchte ich gern unabhängige 1:1-Verknüpfungen in der TITEL-Tabelle: Einmal soll der Buchtitel der Print-ISBN zugeordnet werden und auch in die Tabelle der Nummern geschrieben werden, deshalb eben 1:1. Und das zugehörige eBook (sofern es existiert) soll mit dem Nummernkreis der eBooks-verknüpft werden, damit man in der jeweiligen ISBN-Tabelle auch sehen kann, welches Buch sich dahinter verknüpft.
Ich möchte auch nicht alle ISBN-Nummernkreise in eine Tabelle ziehen, das würde wieder Chaos bei der Zuweisung der neuen ISBN für neue Titel mit sich bringen. Beispielsweise könnte versehentlich eine eBook-ISBN einem Print-Buch zugeordnet werden. Natürlich kann man das alles durch bestimmte Abfragen usw. regeln, aber separate Tabellen wären schon besser - zumal in Kürze eine weiterer ISBN-Nummernkreis von wieder 999 Nummern angefordert werden muss, da der aktuelle Nummernkreis bald aufgebraucht ist.
ISBN ist eine Wissenschaft für sich, aber hat am Ende einen immensen Vorteil: Jedes Buch hat weltweit eine eineindeutige und einzigartige Nummer und ist prinzipiell auch weltweit bestellbar, ohne dass es zu Fehlern kommt. Aber die Verwaltung der ISBN treibt die Verlage oft an den Rand des Wahnsinns.
Wenn ihr eine Idee habt, wie man das besser machen kann, freue ich mich sehr. Vielleicht sehe ich grade nicht die einfache Lösung.
Gruß, Oliver
-
Hallo Zusammen,
man kann eine 1:1 Beziehung aus zwei 1:n Beziehungen bauen. Entweder mit einer Extratabelle ala n:m mit unique Beschränkung pro Spalte oder einfach in beiden Tabellen die Beziehungen doppelt zueinander aufbauen und die n-Tabellen in den Formularansichten ausblenden lassen.
Oliver, wenn alle deine Titel (print ind Ebooks) in einer Tabelle untergebracht sind, würde ich auch die ISBN in einer Tabelle zusammenbringen und mit dem Auswahlfeld voneinander unterscheiden lassen.
Ich habe ein kleines Beispiel, wie sowas aussehen kann. Hier kann man sowohl die Bücher mit ISBN verknüpfen als uch umgekehrt. Wenn die Verknüpfung bei Bücher gelöst wird, wird automatisch auch die Verknüpfung bei ISBN gelöst. Die Einschränkung ist so Programmiert, dass nur die freien ISBN Nummern zur Auswahl stehen und umgekehr nur die freie Bücher. Die Zuordnungzu Prin oder E-Book wird auch berücksichtig. So ist ausgeschlossen, dass die E-Books nummer den printmedien zugeordnet werden können.
https://www.dropbox.com/s/yysk6wdwqd1b5rv/1%20zu%201%20Beziehung.ninox?dl=0
Leo
-
Ah, dann kann ich mir meinen Text ja sparen ...
Ich hätte tatsächlich wie Leo auch eher vorgeschlagen, alle Titel und alle ISBN in jeweils einer Tabelle zu speichern und über entsprechende Kennungen wie "Art" o. ä. zu unterscheiden (sofern es keine weiteren sachlichen Kriterien zur Vergabe einer neuen ISBN gibt, sondern jeweils die nächste freie des betreffenden Nummernkreises genommen wird). Denn das ist ja gerade der Vorteil von Datenbanken.
Wobei ich die Zuordnung nicht unbedingt über eine Verknüpfung im Ninox'schen Sinne vorgenommen hätte, sondern bevorzugt über einen Button "ISBN vergeben", der je nach Art die nächste freie Nummer errmittelt, dem Titel zuordnet und umgekehrt den Titel auch in den betreffenden ISBN-Datensatz schreibt. In einfacher Form als Script:
let myArt := Art
let myRecord := first(select ISBNUMMERN where Art = myArt and Buchtitel = null).Nr;
ISBN := first(select ISBNUMMERN where Nr = myRecord).ISBN;
let myTitel := Buchtitel;
for p in select ISBNUMMERN where Nr = myRecord do
p.(Buchtitel := myTitel);
p.(Vergabedatum := today())
endUnd als Gegenstück in der ISBN-Tabelle einen Button "Titel anzeigen", der bei Bedarf den Titel-Datensatz anzeigt:
let myISBN := ISBN;
let myRecord := first(select TITEL where ISBN = myISBN).Nr;
if number(myRecord) != null
popupRecord(record(TITEL,myRecord))
else
alert("Keinen Titel mit der ISBN " + myISBN + " gefunden!")
endAber das sind im Grunde nur verschiedene technische Ansätze, die dasselbe Ziel verfolgen und auf derselben Datenstruktur beruhen.
-
Ja, deine Lösung ist viel sicherer weil die Verknüpfungsfelder bei mir noch das Plus-Zeichen haben, was bei ungeübten Benutzer zum Anlegen neuer ISBN-Nummern führen kann. Man kann natürlich das mit Berechtigungen unterbinden, was aber trotztdem zur Verwirrung führen wird, weil der Benutzer dann eine Meldung bekommt, dass er nicht für diese Transaktion nicht berechtigt ist.
Leo
-
Hallo Leo, hallo Axel,
sehr herzlichen Dank für eure Anregungen, das werde ich mir ganz in Ruhe ansehen. Wenn ich das umgesetzt habe, melde ich mich nochmal. Vermutlich ist es wohl am sinnvollsten, alle ISBN in eine Tabelle zu importieren ...
Viele Grüße
Oliver
-
Hallo Oliver, ich hoffe, es erscheint nicht anmaßend, denn natürlich kennt niemand dein Business und deine Prozesse besser als du. Insofern kann es gut sein, dass es weitere Aspekte gibt, die wir als Außenstehende nicht so auf dem Schirm haben.
Aber nach gegenwärtigem Wissensstand würde ich sagen: Eine ISBN-Tabelle, in der noch mal die Nummer, Titel, Metadaten o. ä. gespeichert sind, macht m. E. rein logisch betrachtet generell keinen Sinn. Man erzeugt nur unnötig redundante Daten ohne praktischen Mehrwert.
Deshalb auch meine anfängliche Annahme, die ISBN-Tabelle beinhalte nur bevorratete, noch nicht vergebene ISB-Nummern, die man nach Vergabe gleich aus der Tabelle entfernt. (Was übrigens nach wie vor meine Empfehlung wäre.)
Denn die ISBN hat für sich ja keinerlei Informationswert. Sobald sie einem Titel zugeordnet wurde, ist sie fester Bestandteil dieses Datensatzes. Deshalb würde ich alle Daten, die möglicherweise bisher in der ISBN-Tabelle gespeichert waren, nur noch in der TITEL-Tabelle speichern (bspw. auch ISBN-Metadaten).
Mir fällt jedenfalls beim besten Willen keine Nutzung der ISBN-Tabelle ein, die sich nicht genauso gut (oder sogar besser) mit der TITEL-Tabelle realisieren ließe. Schließlich sind die Daten ja dieselben.
Demzufolge stellt sich die Frage: Wozu eine extra ISBN-Tabelle mit Titel und vielleicht noch weiteren Daten, die schon in der Titel-Tabelle gespeichert sind (oder sein könnten)?
Nur so als Denkanstoß. :-)
-
Hallo Axel,
die Frage ist extrem berechtigt, und ich habe sie mir auch des öfteren gestellt. Vielleicht ist das ein Zopf, der abzuschneiden ist. Aber manches geht nur Schritt für Schritt, wenn mehrere Mitarbeiter und Kollegen in die neue digitale Zeit mitzunehmen sind. Leo wird davon auch ein Lied singen können ...
Viele Grüße
Oliver
-
Wir liefern hier nur Scheren. Schneiden musst du selbst. ;)
-
:)
-
Hallo Axel, hallo Leo,
hier nochmal meinen herzlichsten Dank! Ich habe mich jetzt für eine Kombi-Lösung eurer beiden Vorschläge entschieden. Als erstes habe ich alle ISBN-Listen in eine Tabelle überführt und ein entsprechendes Auswahlfeld gesetzt für PRINT, EPUB, FXL usw.
In der Titelverwaltung ist die Verknüpfung angelegt, mit b.TEXT = null and text(b.LABEL) = "PRINT" setze ich die Einschränkung in der Auswahl, auch wenn das Plus-Zeichen dann sichtbar ist und ungeübte Nutzer zum Fehlklick verleiten könnte, wie Leo sagte. Aber der Vorteil ist, dass man aus der Liste der noch freien Nummern im Einzelfall auch eine "schöne" auswählen kann, beispielsweise eine Schnapszahl oder so etwas. Und mit Skript nach der Änderung schreibe ich den Titel dann in die ISBN-Tabelle zurück.
Dazu noch eine zweite Verknüpfung, wo man aus der selben Tabelle die ePUB-ISBN wählen und mit identischem Prozedere vergeben kann.
Nochmals ganz herzlichen Dank, habe an dem Beispiel wieder viel gelernt!!
Oliver
-
*Daumen hoch*
Da macht auch der Statuswechsel von Rot auf Grün Sinn. ;)
Content aside
- vor 6 JahrenZuletzt aktiv
- 16Antworten
- 6016Ansichten