Datenbank Tabellen mit Prefix

Im Entwickler-Forum können Implementierungsdetails sowie Alternativen der Umsetzung diskutiert werden. // Here, developers can discuss implementation details of features of their projects.
GeneralCrime
Beiträge: 77
Registriert: 14.12.2011, 07:13:16

Datenbank Tabellen mit Prefix

Beitrag von GeneralCrime » 25.04.2013, 12:52:04

Heyho,
ich weis nicht ob es sowas schon gibt aber ich würde es schön finden wenn ich bei Modulesn die über den gorm eingebunden werden den datenbanktabellen einen prefix geben könnte.

Sinn ist dabei das ich keine gefahr laufe tabellennamen doppelt zu nutzen

UMGT
ent_umgt_user
ass_umgt_user2group
....

Vielleicht gibt es das auch schon und ich habs nur nicht gefunden.

mfg General Crime

Benutzeravatar
dr.e.
Administrator
Beiträge: 4593
Registriert: 04.11.2007, 16:13:53

Re: Datenbank Tabellen mit Prefix

Beitrag von dr.e. » 25.04.2013, 23:36:29

Hi,

diese Möglichkeit gibt es bisher nicht, denn der GORM vergibt eindeutige Tabellen-Namen abhängig vom Objekt-Namen. Sofern du einen Objekt-Namen in einer Anwendung doppelt vergibst wird auch nur eine Tabelle erstellt.

Um einen expliziten Präfix zu vergeben muss das Mapping der Objekt-Namen auf Tabellen angepasst werden. Die Empfehlung war bisher immer alle Tabellen die vom GORM verwaltet werden in eine eigene Datenbank zu legen. Würde das deinen Anwendungsfall abdecken oder siehst du hier weitere Probleme?
Viele Grüße,
Christian

GeneralCrime
Beiträge: 77
Registriert: 14.12.2011, 07:13:16

Re: Datenbank Tabellen mit Prefix

Beitrag von GeneralCrime » 26.04.2013, 10:28:57

Ja so habe ich es nun auch getätigt, finde es nur umständlich für jedes modul ne eigene Datenbank zu erstellen es ist meiner Meinung nach übersichtlicher und komfortabler nur 1 zu nutzen.

Der Gedanke kam mir nur weil ich mir die idee in den Kopf gesetzt habe wenn mein Spiel... stabil läuft ein eigenes Forum zu basteln.
Und bei dem Benutzern ist mir dann noch nicht klar wie ich es machen soll.

UserManager
Schon sehr ausgeprägt und auch dafür nutzbar wenn man eigene Felder noch definiert.
Problematisch das dieser auch von dem Portal selbst genutzt wird und auch schon eigen Felder hat.
Da müste ich also bei beiden beide Felder angeben oder?

Hatte nun gedacht dem Forum eine eigene User Tabelle zu geben die nur die Spalten enthält die das Forum nutzt + ID und die Benutzer dann verbinde.

Hm aber auch nicht das wahre. Ich hoffe Du verstehst den Ansatz den ich versuche zu vermitteln.


PS:
warum besitzt der UmgtManger eigentlich keine Funktionen wie hasPermission() halt relevante Funktionen die man schon braucht wenn man ihn explizit nutzen will.

Benutzeravatar
dr.e.
Administrator
Beiträge: 4593
Registriert: 04.11.2007, 16:13:53

Re: Datenbank Tabellen mit Prefix

Beitrag von dr.e. » 26.04.2013, 12:02:49

Hi,
Ja so habe ich es nun auch getätigt, finde es nur umständlich für jedes modul ne eigene Datenbank zu erstellen es ist meiner Meinung nach übersichtlicher und komfortabler nur 1 zu nutzen.
Sofern die Tabellen der einzelnen Module sich nicht überschneiden - also z.B. keine zwei Tabellen ent_user vorhanden wären - kannst du grundsätzlich auch die selbe Datenbank nutzen. Sollten sie sich überschneiden wäre das zumindest ein sehr guter Hinweis darauf, dass du ggf. Dinge doppelt modellierst. Gerade ein Benutzer ist ja ein zentrales Element und sollte idealerweise - siehe dein Post - auch als solcher modelliert werden. Für deinen Anwendungsfall sehe ich daher erstmal keine Einschränkung.
UserManager
Schon sehr ausgeprägt und auch dafür nutzbar wenn man eigene Felder noch definiert.
Problematisch das dieser auch von dem Portal selbst genutzt wird und auch schon eigen Felder hat.
Da müste ich also bei beiden beide Felder angeben oder?
Du hast beim UMGT grundsätzlich zwei Möglichkeiten: a) den User per GORM-Konfiguration erweitern oder b) die Applikationsspezifischen Attribute und Parameter in ein eigenes Objekt modellieren. Vorgehensweise b) ermöglicht dir zwischen den gemeinsam genutzten Daten im Benutzer selbst und den Modul-spezifischen Parametern (z.B. Einstellungen aus einem Forum) sauber zu unterscheiden. Das User-Objekt selbst kannst du dann in beiden Nutzen und dir per Beziehung die einzelnen Modul-spezifischen Inhalte laden.
Hatte nun gedacht dem Forum eine eigene User Tabelle zu geben die nur die Spalten enthält die das Forum nutzt + ID und die Benutzer dann verbinde.
Das würde ich aus zwei Gründen nicht tun: a) du generierst dir weitere Logik in deiner Anwendung, die du dir sparen kannst und b) du musst die beiden Objekte und Strukturen synchron halten. Letzteres ist fehleranfällt und meiner Erfahrung nach keine gute Idee.

Hoffe das hilft dir weiter. Wenn du konkrete Hinweise zur Implementierung oder zur Konfiguration von GORM/UMGT brauchst, sag einfach Bescheid! :)
Viele Grüße,
Christian

GeneralCrime
Beiträge: 77
Registriert: 14.12.2011, 07:13:16

Re: Datenbank Tabellen mit Prefix

Beitrag von GeneralCrime » 26.04.2013, 13:29:31

Hm nach eingehender Überlegung hast Du natürlich recht das es Fehleranfällig ist. (achtung das Thema wir langsam offTopic)

Glaub der Grund was mir quer im Magen liegt ist dieser:

Habe 3 Contexte
portal
admin
game

alle 3 nutzen den UMGT somit habe ich auch 3 *_umgt_objects.ini
muss ich diese explizit gleich halten?

Code: Alles auswählen

[User]
DisplayName = "VARCHAR(100)"
FirstName = "VARCHAR(100)"
LastName = "VARCHAR(100)"
StreetName = "VARCHAR(100)"
StreetNumber = "VARCHAR(100)"
ZIPCode = "VARCHAR(100)"
City = "VARCHAR(100)"
EMail = "VARCHAR(100)"
Phone = "VARCHAR(100)"
Mobile = "VARCHAR(100)"
Username = "VARCHAR(100)"
Password = "VARCHAR(100)"
DynamicSalt = "VARCHAR(50)"
LoveCharakter = "VARCHAR(50)"
Birthday = "TIMESTAMP NOT NULL default '0000-00-00 00:00:00'"
Quote = "TEXT"
oder reicht es wenn jede nur die daten besitzt die es benötigt (werde nie ein update über den gorm durchführen.

Der Grund warum 3 Contexte liegt daran das: admin/game auf einer anderen subdomain liegen als portal.
Vieleicht bin ich auch nur zu verwirrt in dem Bereich Konfiguration.
Sorry das wird grad so wichtig da ich immer mehr die mir gegebenen Funktionen des APF nutze.

Achtung Werbung
http://www.gateworld-game.net ist mein (Groß) Projekt

Benutzeravatar
dr.e.
Administrator
Beiträge: 4593
Registriert: 04.11.2007, 16:13:53

Re: Datenbank Tabellen mit Prefix

Beitrag von dr.e. » 26.04.2013, 17:47:45

Hi,
alle 3 nutzen den UMGT somit habe ich auch 3 *_umgt_objects.ini
muss ich diese explizit gleich halten?
Gegenfrage: musst du zwingend 3 Kontexte haben? Grundsätzlich kannst du die drei Bereiche auch in einem Kontext abbilden und einfach unterschiedliche Einstiegs-Templates nutzen. Um Fehler zu vermeiden empfiehlt es sich schon die Dateien gleich zu halten, vorher würde ich jedoch gerne verstehen ob du die 3 Kontexte auch benötigst.
oder reicht es wenn jede nur die daten besitzt die es benötigt (werde nie ein update über den gorm durchführen.
Wie oben schon angesprochen gibt es zwei Lösungen. Die hier angesprochene wäre Option a) mit quasi inkonsistenten Konfiurationen, was grundsätzlich aber funktioniert. Allerdings sollte sich ein Objekt User immer gleich verhalten, sonst ist es eben kein User.
Viele Grüße,
Christian

GeneralCrime
Beiträge: 77
Registriert: 14.12.2011, 07:13:16

Re: Datenbank Tabellen mit Prefix

Beitrag von GeneralCrime » 26.04.2013, 18:42:54

Hm bin da auch grad am überlegen ob ich 3 brauche.

Mir fällt nur ein das es unterschiedliche Logins sind die sich ja an den Context binden.
Ansonsten ist es egal ob der Context "sites::gateworld" ist und das template sites::gateworld-(portal,game,admin).

Sehe schon muss noch viel lernen wie immer als nicht gelernter :-)

Benutzeravatar
dr.e.
Administrator
Beiträge: 4593
Registriert: 04.11.2007, 16:13:53

Re: Datenbank Tabellen mit Prefix

Beitrag von dr.e. » 26.04.2013, 21:16:29

Hi,
Mir fällt nur ein das es unterschiedliche Logins sind die sich ja an den Context binden.
Ansonsten ist es egal ob der Context "sites::gateworld" ist und das template sites::gateworld-(portal,game,admin).
Die aktuelle Implementierung des UMGT nutzt den Kontext um zwischen unterschiedlichen Applikationen zu unterscheiden. Insofern war deine Überlegung definitv richtig. Die Frage ist natürlich ob du die Unterscheidung nicht auch über unterschiedliche Rollen realisieren kannst.
Sehe schon muss noch viel lernen wie immer als nicht gelernter :-)
Nur kein Stress! :) Ich bin mir sicher, wir finden eine vernünftige Lösung für deine Aufgabenstellung.
Viele Grüße,
Christian

GeneralCrime
Beiträge: 77
Registriert: 14.12.2011, 07:13:16

Re: Datenbank Tabellen mit Prefix

Beitrag von GeneralCrime » 26.04.2013, 23:38:53

dr.e. hat geschrieben:Hi,
Mir fällt nur ein das es unterschiedliche Logins sind die sich ja an den Context binden.
Ansonsten ist es egal ob der Context "sites::gateworld" ist und das template sites::gateworld-(portal,game,admin).
Die aktuelle Implementierung des UMGT nutzt den Kontext um zwischen unterschiedlichen Applikationen zu unterscheiden. Insofern war deine Überlegung definitv richtig. Die Frage ist natürlich ob du die Unterscheidung nicht auch über unterschiedliche Rollen realisieren kannst.
Naja es gibt eine Rolle Administratoren die sich lediglich im Admin Menü anmelden können, der rest kann es gar nicht.
Und das Spiel an sich nutzt den Umgt nur zum speichern wer angemeldet ist und lädt dann dementsprechend den Spieler, eine Zusammnelegung (User-Spieler) ist hier devinitiv nicht nötig da jeder Benutzer mehr Spielaccount haben kann auf verschiedenen Welten.
dr.e. hat geschrieben:
Sehe schon muss noch viel lernen wie immer als nicht gelernter :-)
Nur kein Stress! :) Ich bin mir sicher, wir finden eine vernünftige Lösung für deine Aufgabenstellung.
Denke ich auch ist meist nur nen Verständnis Problem.

Benutzeravatar
dr.e.
Administrator
Beiträge: 4593
Registriert: 04.11.2007, 16:13:53

Re: Datenbank Tabellen mit Prefix

Beitrag von dr.e. » 28.04.2013, 12:02:32

Hi,
Naja es gibt eine Rolle Administratoren die sich lediglich im Admin Menü anmelden können, der rest kann es gar nicht.
Und das Spiel an sich nutzt den Umgt nur zum speichern wer angemeldet ist und lädt dann dementsprechend den Spieler, eine Zusammnelegung (User-Spieler) ist hier devinitiv nicht nötig da jeder Benutzer mehr Spielaccount haben kann auf verschiedenen Welten.
OK, dann kannst du das natürlich auch trennen.
Viele Grüße,
Christian

GeneralCrime
Beiträge: 77
Registriert: 14.12.2011, 07:13:16

Re: Datenbank Tabellen mit Prefix

Beitrag von GeneralCrime » 30.04.2013, 19:10:49

Um mal zum Grund des Themas zurück zu kehren:

Habe nun ein kleines Forum
ent_topic
*ent_post*


Und eine gute Supportverwaltung:

ent_ticket Eigentliches Ticket
*ent_post* Unterhaltung darüber.

Somit müßte ich dies nun wieder auf eine externe Datenbank packen.
Also finde echt ein Prefix macht sin!
Einfach bei der jeweiligen gorm Configuration als Parameter mit angebbar und er bastelt dann aus Topic kein ent_topic sondern ent_xyz_topic.

Benutzeravatar
dr.e.
Administrator
Beiträge: 4593
Registriert: 04.11.2007, 16:13:53

Re: Datenbank Tabellen mit Prefix

Beitrag von dr.e. » 30.04.2013, 23:03:22

Hi,
Somit müßte ich dies nun wieder auf eine externe Datenbank packen.
Also finde echt ein Prefix macht sin!
Überschneiden sich denn die Tabellen mit anderen Applikationen? Falls nein, scheint mir ein Präfix nicht unbedingt notwendig zu sein.
Viele Grüße,
Christian

Megger
Beiträge: 1233
Registriert: 04.11.2008, 10:57:37

Re: Datenbank Tabellen mit Prefix

Beitrag von Megger » 22.05.2013, 16:16:08

Ich wünsche mir gerade ein prefix für die Tabellen, weil ich ein Backup der Usermanagement Tabellen machen will :D

mit ent_umgt_...... würden diese halt alle an der gleichen Stelle stehen
Tutorial: Browsergame mit dem APF (Die ersten Parts handeln von Installation und Inbetriebnahme des APFs, deswegen sicherlich auch für alle Nicht-Browsergame-Programmierer interessant)

APF-Version
  • Entwicklung: 2.0
  • Produktiv: 1.15

Benutzeravatar
dr.e.
Administrator
Beiträge: 4593
Registriert: 04.11.2007, 16:13:53

Re: Datenbank Tabellen mit Prefix

Beitrag von dr.e. » 22.05.2013, 23:29:02

Magst du das mal in die Roadmap aufnehmen und über eine mögliche Implementierung nachdenken?

PS: ich persönlich bin immer noch nicht überzeugt, dass es eine gute Idee ist, denn ein Backup kann ja auch in einer Clone-Datenbank liegen. ;)
Viele Grüße,
Christian

Megger
Beiträge: 1233
Registriert: 04.11.2008, 10:57:37

Re: Datenbank Tabellen mit Prefix

Beitrag von Megger » 23.05.2013, 10:52:16

PS: ich persönlich bin immer noch nicht überzeugt, dass es eine gute Idee ist, denn ein Backup kann ja auch in einer Clone-Datenbank liegen.
Kannst du das nochmal genauer erläutern?

Bei mir ging es darum, dass ich die Daten des Usermanagements austauschen wollte, bzw. ergänzen wollte (ich hatte vorher ein Komplettbackup gemacht und dies in mein Testsystem eingespielt!) Im Testsystem habe ich Berechtigungen erstellt und diese getestet! Nun kann ich aber nicht einfach wieder ein komplettes Backup vom Testsystem machen und es ins Produktivsystem einspielen, sondern kann nur die Benutzerverwaltungstabellen austauschen, da diese sich nicht geändert haben, der Rest der Datenbank kann sich durchaus schnell ändern! D.h. für den Fall das etwas nicht funktioniert -> erstmal ein Backup der Umgt Tabellen machen, dann die Umgt Tabellen ausm Testsystem einspielen und prüfen ob alles so funktioniert wie aufm Testsystem auch! Dabei muss man immer schauen, welche von den ganzen ent_ ass_ und cmp_ Tabellen zum Usermanagement gehören
Tutorial: Browsergame mit dem APF (Die ersten Parts handeln von Installation und Inbetriebnahme des APFs, deswegen sicherlich auch für alle Nicht-Browsergame-Programmierer interessant)

APF-Version
  • Entwicklung: 2.0
  • Produktiv: 1.15

Antworten

Wer ist online?

Mitglieder in diesem Forum: 0 Mitglieder und 1 Gast