verwendetes Datenbanksystem: Firebird
Hallo,
ich bin zur Zeit damit beschäftigt eine Datenbank zur Stammdatenverwaltung (Produkte, Benutzer, ...) aufzubauen. Diese Datenbank soll für verschiedene Projekte mit unterschiedlichen Anforderungen verwendet werden. Die Tabelle 'PARTS' enthält zum Beispiel immer die Felder 'ID', 'CUSTOMER_ID', 'NAME' und 'DESCRIPTION'. Projektabhängig soll der Anwender jetzt noch benutzerdefinierte Felder hinzufügen können.
Das funktioniert auch soweit schon. Jetzt habe ich noch eine Frage zur Anzeige der Spaltennamen, z.B. in einem DGV. Die Spaltenüberschriften, also DataGridViewColumn.HeaderText möchte ich ebenfalls variabel und auch mehrsprachig vorhalten können ('CUSTOMER_ID' soll bei Projekt A als 'Materialnummer', bei Projekt B aber als 'Artikelnummer' angezeigt werden, bei Sprachumschaltung eben auch noch in Englisch).
Ansatz:
Tabelle LANGUAGE_STRINGS:
TABLE_NAME|FIELD_NAME|LANGUAGE_ID|DISPLAY_TEXT
Tabelle LANGUAGES:
ID|NAME
mit Fremdschlüssel zwischen ID und LANGUAGE_ID
Das ganze kann dann mit diesem Select-Befehl abgerufen werden:
string query = "SELECT DISPLAY_TEXT FROM LANGUAGES INNER JOIN LANGUAGE_STRINGS ON ID = LANGUAGE_ID WHERE NAME = @paramCulture AND TABLE_NAME = @paramTable AND FIELD_NAME = @paramField"
Funktioniert auch soweit, kommt mir aber irgendwie etwas umständlich vor. Hat hier jemand vielleicht einen einfacheren Ansatz?
Koller.