Office Forum
www.Office-Loesung.de
Access :: Excel :: Outlook :: PowerPoint :: Word :: Office :: Wieder Online ---> provisorisches Office Forum <-
Sprachen in DB-Modell berücksichtigen
zurück: Parameter Abfrage weiter: Abfrage aus mehreren Tabellen Unbeantwortete Beiträge anzeigen
Neues Thema eröffnen   Neue Antwort erstellen     Status: Feedback Facebook-Likes Diese Seite Freunden empfehlen
Zu Browser-Favoriten hinzufügen
Autor Nachricht
akdes
VBA-Noob^3, C-Noob^-2, PHP-Noob^0, C#-Noob^0


Verfasst am:
21. Jan 2014, 12:40
Rufname: Alex
Wohnort: Berlin

Sprachen in DB-Modell berücksichtigen - Sprachen in DB-Modell berücksichtigen

Nach oben
       Version: Office 2010

Hallo!

Da ich leider z.Z. mehrere Probleme mit der Realisierung der Sprachen in DB habe, kann ich erst jetzt zu 100% sagen, dass mein Modell faul (was die Sprachen angeht) ist.

Alles funktioniert außer Sprachen.

Kurze Beschreibung.
Ich habe mehrere Tabellen (> 10), bei manchen Tabelle kommen Felder vor, die auf eine Sprachtabelle referenzieren sollen:
Code:
Sprachtabelle
ID (Autowert)
EN (Text)
DE (Text)
TextID (Text) //wird vom User festgelegt. Nur für ausgabe, nicht für die Referenz, da die TextIDs sich wiederholen können

In einer Tabelle, habe ich das Problem, dass ich zwei Felder habe, und diese Felder können unter Ümständen auch leer bleiben (zumindest SprachFeld2) die mit ID (1,2,3..)auf die Sprachtabelle referenzieren. (als Beispiel: Product Bezeichnung + Beschreibung/ oder Titel + Kategorie)
Code:
TabelleX
ID
...
SprachFeld1 (FKEY -> Sprachtabelle.ID)
SprachFeld2 (FKEY -> Sprachtabelle.ID)
...

Das Problem kommt beim Select...
Code:
Select ..., Sprachtabelle.TextID as Feld1, Sprachtabelle.TextID as Feld2, ... From TabelleX LEFT JOIN Sprachtabelle ON TabelleX.SprachFeld1 = Sprachtabelle.ID OR TabelleX.SprachFeld2 = Sprachtabelle.ID

Das führt nicht zum ergebnis, ist auch klar: gibt 2 Zeilen aus wobei Zeile1.Feld1 = Zeile1.Feld2...
Also ich auf der Suche nach beserer Lösung, oder wenn es auch so Funktionieren kann, nach einer Sql-Abfrage...

Hat schon jemand damit gekämpft?
Kriterium:
- Es muss nur **eine** Sprachtabelle sein.

Vielen Dank im Voraus!



UPDATE:

Code:
Select ..., S1.TextID as Feld1, S2.TextID as Feld2, ... From ((TabelleX LEFT JOIN Sprachtabelle AS S1 ON TabelleX.SprachFeld1 = S1.ID) LEFT JOIN Sprachtabelle AS S2 ON TabelleX.SprachFeld2 = S2.ID

Funktioniert, ob es richtig ist?![/code]

_________________
Mit freundliche Grüßen,
Alexander
Gast150313
passt scho'


Verfasst am:
21. Jan 2014, 13:08
Rufname:
Wohnort: Kurpfalz


AW: Sprachen in DB-Modell berücksichtigen - AW: Sprachen in DB-Modell berücksichtigen

Nach oben
       Version: Office 2010

Muß mich vergewissern: Du möchtest, daß bestimmte Feldinhalte (oder Feldbezeichner?) in unterschiedlichen Sprachen erscheinen können oder was?
_________________
Besten Gruß

A. Friend
akdes
VBA-Noob^3, C-Noob^-2, PHP-Noob^0, C#-Noob^0


Verfasst am:
21. Jan 2014, 13:37
Rufname: Alex
Wohnort: Berlin

Re: AW: Sprachen in DB-Modell berücksichtigen - Re: AW: Sprachen in DB-Modell berücksichtigen

Nach oben
       Version: Office 2010

Gast150313 - 21. Jan 2014, 12:08 hat folgendes geschrieben:
Muß mich vergewissern: Du möchtest, daß bestimmte Feldinhalte (oder Feldbezeichner?) in unterschiedlichen Sprachen erscheinen können oder was?

Ich möchte, dass bei zwei Referenzen in einer Tabelle zu einer richtigen Ausgabe kommt, nämlich Feld1 -> Sprachentabelle.ID 1 und Feld2 -> Sprachentabelle.ID 2
=> Feld1: ErsteTextID Feld2: ZweiteTextID
Meine Abfrage, die unter "UPDATE" steht, liefert mir bereits benötigten Ergebnis, ich kann mir aber ganz gut vorstellen, dass meine Lösung mit 2 Felder, die auf eine Tabelle zeigen, weit nicht die beste ist.

_________________
Mit freundliche Grüßen,
Alexander
Gast150313
passt scho'


Verfasst am:
21. Jan 2014, 13:57
Rufname:
Wohnort: Kurpfalz

AW: Sprachen in DB-Modell berücksichtigen - AW: Sprachen in DB-Modell berücksichtigen

Nach oben
       Version: Office 2010

1. Du solltest die Fragen, die man dir stellt schon beantworten. Ich wollte wissen, was du da tatsächlich machst und nicht wie du es - möglicherweise nicht sinnvoll oder nicht korrekt - technisch umzusetzen versuchst.

2. Welche Datentypen haben die Felder Sprachfeld1 und 2 in TabelleX?

_________________
Besten Gruß

A. Friend
Bitsqueezer
Office-VBA-Programmierer


Verfasst am:
21. Jan 2014, 14:01
Rufname:


AW: Sprachen in DB-Modell berücksichtigen - AW: Sprachen in DB-Modell berücksichtigen

Nach oben
       Version: Office 2010

Hallo,

zwei Felder, die auf eine Tabelle zugreifen, ist durchaus OK, auch die Lösung aus Deinem Update. Eine andere Lösung ist ein Sub-Select auf Spaltenebene, was aber im Prinzip genauso funktioniert, nur eher langsamer ist. Auf Spaltenebene ist es sinnvoller, wenn der Rest der Abfrage bearbeitbar sein soll. Access regelt allerdings vieles selbst, was in einem Datenbankserver nicht mehr bearbeitbar wäre, von daher ist diese Aussage u.a. abhängig vom verwendeten Backend. und anderen Gegebenheiten Deiner Datenbank.
Deine JOIN-Lösung ist auf jeden Fall vorzuziehen, wenn Nur-Lesen ausreicht.

Vom Tabellenmodell her würde ich allerdings die Sprachen in eine Untertabelle auslagern und dort die Übersetzungstexte ablegen und in der Haupttabelle nur ein übergeordnetes Objekt, das übersetzt werden soll. Hat den Vorteil, daß es leicht erweiterbar ist, wenn mal eine Sprache hinzugefügt oder ausgetauscht werden soll. In Deinem Modell würde das viel Programmierarbeit kosten, in einer Tabelle nur das Ändern von Daten.

Man sollte generell keine Daten in Spaltennamen ablegen, heißt: "Sprache" wäre ein Spaltenname und die Daten "DE" und "EN". Wenn man aber genau weiß, daß sich an diesem Modell für die Laufzeit der Anwendung nichts mehr ändern wird, kann man ruhig auch ein wenig denormalisieren.

Gruß

Christian
akdes
VBA-Noob^3, C-Noob^-2, PHP-Noob^0, C#-Noob^0


Verfasst am:
21. Jan 2014, 14:41
Rufname: Alex
Wohnort: Berlin

Re: AW: Sprachen in DB-Modell berücksichtigen - Re: AW: Sprachen in DB-Modell berücksichtigen

Nach oben
       Version: Office 2010

Vielen Dank für deinen Antwort!

Bitsqueezer - 21. Jan 2014, 13:01 hat folgendes geschrieben:
Hallo,

zwei Felder, die auf eine Tabelle zugreifen, ist durchaus OK, auch die Lösung aus Deinem Update. Eine andere Lösung ist ein Sub-Select auf Spaltenebene, was aber im Prinzip genauso funktioniert, nur eher langsamer ist. Auf Spaltenebene ist es sinnvoller, wenn der Rest der Abfrage bearbeitbar sein soll. Access regelt allerdings vieles selbst, was in einem Datenbankserver nicht mehr bearbeitbar wäre, von daher ist diese Aussage u.a. abhängig vom verwendeten Backend. und anderen Gegebenheiten Deiner Datenbank.
Deine JOIN-Lösung ist auf jeden Fall vorzuziehen, wenn Nur-Lesen ausreicht.

Es wird nur in Access auf dem PC verwendet, also nicht Server-Basierend.
Bitsqueezer - 21. Jan 2014, 13:01 hat folgendes geschrieben:

Vom Tabellenmodell her würde ich allerdings die Sprachen in eine Untertabelle auslagern und dort die Übersetzungstexte ablegen und in der Haupttabelle nur ein übergeordnetes Objekt, das übersetzt werden soll. Hat den Vorteil, daß es leicht erweiterbar ist, wenn mal eine Sprache hinzugefügt oder ausgetauscht werden soll. In Deinem Modell würde das viel Programmierarbeit kosten, in einer Tabelle nur das Ändern von Daten.

Man sollte generell keine Daten in Spaltennamen ablegen, heißt: "Sprache" wäre ein Spaltenname und die Daten "DE" und "EN". Wenn man aber genau weiß, daß sich an diesem Modell für die Laufzeit der Anwendung nichts mehr ändern wird, kann man ruhig auch ein wenig denormalisieren.

Gruß

Christian


Ich glaube, dich richtig verstanden zu haben, und das ist einer der Sachen, was mir mein Kopf zerbricht.

Jetzt sind nur zwei Sprachen da... Was wenn fünf weitere kommen werden!?
Ich habe mir es so Vorgestellt:

Da beim Schreiben/Verwalten der DB nur die IDs und TextIDs vergeben werden, ohne DE/EN...
wäre es kein Problem, die Sprachtabelle mit weiteren Spalten zu erweitern. Was aber DB-Technisch Falsch wäre...

Die Sprachen selbst (bis jetzt sind ID und TextID vergeben, EN und DE sind "NULL")werden Separat per GUI angegeben werden. Sowas wie "Sprachenverwaltung", wo man zu jeder TextID die sprachliche Bedeutung in mehreren Sprachen schreiben soll.

Ich habe Leider nicht verstanden, wie du es machen würdest.

Vielen Dank!

_________________
Mit freundliche Grüßen,
Alexander
akdes
VBA-Noob^3, C-Noob^-2, PHP-Noob^0, C#-Noob^0


Verfasst am:
21. Jan 2014, 14:48
Rufname: Alex
Wohnort: Berlin

Re: AW: Sprachen in DB-Modell berücksichtigen - Re: AW: Sprachen in DB-Modell berücksichtigen

Nach oben
       Version: Office 2010

Gast150313 - 21. Jan 2014, 12:57 hat folgendes geschrieben:
1. Du solltest die Fragen, die man dir stellt schon beantworten. Ich wollte wissen, was du da tatsächlich machst und nicht wie du es - möglicherweise nicht sinnvoll oder nicht korrekt - technisch umzusetzen versuchst.

2. Welche Datentypen haben die Felder Sprachfeld1 und 2 in TabelleX?


Sprachfeld1 und 2 sind Fremdschlüssel von der Sprachtabelle, also Datentyp Long.

Feld Inhalte: Bsp.

Code:

Producttbl

Felder: Product_bez   |   Product_beschr
Inhalt:       123     |     9231

123 und 9231 ist eine Referenz auf die Sprachtabelle


Sprachtabelle

Felder: ID  |   TextID              |   EN    |      DE
Inhalt: 123 |  bez_NB_12GB          |  ....
       9231 |  beschr_NB_12GB       |  ....


_________________
Mit freundliche Grüßen,
Alexander
Gast150313
passt scho'


Verfasst am:
21. Jan 2014, 15:12
Rufname:
Wohnort: Kurpfalz

Re: AW: Sprachen in DB-Modell berücksichtigen - Re: AW: Sprachen in DB-Modell berücksichtigen

Nach oben
       Version: Office 2010

akdes - 21. Jan 2014, 13:48 hat folgendes geschrieben:
...
Code:
Producttbl
...
Sprachtabelle
Felder: ID  |   TextID              |   EN    |      DE
Inhalt: 123 |  bez_NB_12GB          |  ....
       9231 |  beschr_NB_12GB       |  ....

Und die dann eben wie von bitsqueezer aufgeteilt werden sollte in eine Sprachtabelle: ID;TextID und eine tbl_TextInSprache: TxtSpr_ID;SpracheID_F;SText mit Inhalten wie
Code:
1;123;1;Engine
2;123;2;Antriebsmotor...usw.
Hinzukommt eine tabelle tbl_Sprachen:
Code:
SpracheID;Kurz;SprInPflSpr;SprInSpr
1;EN;englisch;English
2;DE;Deutsch;Deutsch
3;IT;italienisch;Italiano
4;ES;spanisch;Español... usw.
Auf diese Tabelle bezieht sich der FS SpracheID_F in tbl_TextInSprache.
_________________
Besten Gruß

A. Friend
akdes
VBA-Noob^3, C-Noob^-2, PHP-Noob^0, C#-Noob^0


Verfasst am:
21. Jan 2014, 15:23
Rufname: Alex
Wohnort: Berlin

Re: AW: Sprachen in DB-Modell berücksichtigen - Re: AW: Sprachen in DB-Modell berücksichtigen

Nach oben
       Version: Office 2010

Gast150313 - 21. Jan 2014, 14:12 hat folgendes geschrieben:
akdes - 21. Jan 2014, 13:48 hat folgendes geschrieben:
...
Code:
Producttbl
...
Sprachtabelle
Felder: ID  |   TextID              |   EN    |      DE
Inhalt: 123 |  bez_NB_12GB          |  ....
       9231 |  beschr_NB_12GB       |  ....

Und die dann eben wie von bitsqueezer aufgeteilt werden sollte in eine Sprachtabelle: ID;TextID und eine tbl_TextInSprache: TxtSpr_ID;SpracheID_F;SText mit Inhalten wie
Code:
1;123;1;Engine
2;123;2;Antriebsmotor...usw.
Hinzukommt eine tabelle tbl_Sprachen:
Code:
SpracheID;Kurz;SprInPflSpr;SprInSpr
1;EN;englisch;English
2;DE;Deutsch;Deutsch
3;IT;italienisch;Italiano
4;ES;spanisch;Español... usw.
Auf diese Tabelle bezieht sich der FS SpracheID_F in tbl_TextInSprache.


Danke, das soll mir weiter Helfen!

_________________
Mit freundliche Grüßen,
Alexander
akdes
VBA-Noob^3, C-Noob^-2, PHP-Noob^0, C#-Noob^0


Verfasst am:
21. Jan 2014, 16:52
Rufname: Alex
Wohnort: Berlin


AW: Sprachen in DB-Modell berücksichtigen - AW: Sprachen in DB-Modell berücksichtigen

Nach oben
       Version: Office 2010

Super!!! Danke euch! Funzt alles bestens!
_________________
Mit freundliche Grüßen,
Alexander
Neues Thema eröffnen   Neue Antwort erstellen Alle Zeiten sind
GMT + 1 Stunde

Diese Seite Freunden empfehlen

Seite 1 von 1
Gehe zu:  
Du kannst Beiträge in dieses Forum schreiben.
Du kannst auf Beiträge in diesem Forum antworten.
Du kannst deine Beiträge in diesem Forum nicht bearbeiten.
Du kannst deine Beiträge in diesem Forum nicht löschen.
Du kannst an Umfragen in diesem Forum nicht mitmachen.
Du kannst Dateien in diesem Forum nicht posten
Du kannst Dateien in diesem Forum herunterladen

Verwandte Themen
Forum / Themen   Antworten   Autor   Aufrufe   Letzter Beitrag 
Keine neuen Beiträge Access Programmierung / VBA: DefaultValue - Änd. im vorherigen Datensatz berücksichtigen 7 MP82 153 26. Apr 2014, 18:09
Willi Wipp DefaultValue - Änd. im vorherigen Datensatz berücksichtigen
Keine neuen Beiträge Access Hilfe: DB-Modell fuer Freiwillige Feuerwehr 173 SleepWalker86_ 15191 19. Feb 2014, 08:37
Mr. Miyagi DB-Modell fuer Freiwillige Feuerwehr
Keine neuen Beiträge Access Tabellen & Abfragen: Access Sprachen 4 Gast 81 09. Okt 2013, 10:40
Gast Access Sprachen
Keine neuen Beiträge Access Programmierung / VBA: Aktuell eingegebene Datensätze auch berücksichtigen 3 jakobfragt 68 25. Apr 2013, 20:06
Gast Aktuell eingegebene Datensätze auch berücksichtigen
Keine neuen Beiträge Access Tabellen & Abfragen: Ortszusätze nicht berücksichtigen? 4 ble 270 24. Apr 2013, 15:06
ble Ortszusätze nicht berücksichtigen?
Keine neuen Beiträge Access Programmierung / VBA: Access 2010 - Datum in verschiedenen Sprachen formatieren 2 taharqa 713 31. März 2012, 18:30
KlausMz Access 2010 - Datum in verschiedenen Sprachen formatieren
Keine neuen Beiträge Access Tabellen & Abfragen: Frage zu Tabellenerstellung (DB-Modell) 1 laterne123 184 17. Jul 2011, 14:18
derArb Frage zu Tabellenerstellung (DB-Modell)
Keine neuen Beiträge Access Hilfe: ACCESS Mehrere Sprachen 4 Gast 574 23. Jul 2010, 13:56
michael170662 ACCESS Mehrere Sprachen
Keine neuen Beiträge Access Programmierung / VBA: Access/Office Applikationen - Weiterbildung Prog.Sprachen 0 Thommy1589 298 01. Feb 2010, 12:38
Thommy1589 Access/Office Applikationen - Weiterbildung Prog.Sprachen
Keine neuen Beiträge Access Tabellen & Abfragen: aktuellestes Datum in der Abfrage berücksichtigen 8 Gregorthom 370 24. Okt 2009, 04:47
Willi Wipp aktuellestes Datum in der Abfrage berücksichtigen
Keine neuen Beiträge Access Tabellen & Abfragen: Informationsanalyse in ERM/DBModell 0 AlexS. 672 23. Okt 2009, 11:20
AlexS. Informationsanalyse in ERM/DBModell
Keine neuen Beiträge Access Programmierung / VBA: Daten einer Tabelle im Code berücksichtigen. 8 Daniel (Anfänger) 303 29. Sep 2009, 12:33
Daniel (Anfänger) Daten einer Tabelle im Code berücksichtigen.
 

----> Diese Seite Freunden empfehlen <------ Impressum - Besuchen Sie auch: Microsoft Project