Datenbanktabelle anlegen

Die Frage ist als "gelöst" markiert. Den entsprechend Beitrag findest du hier.

Getting started ... Alles für einen gelungenen Start.
7 Beiträge • Seite 1 von 1
7 Beiträge Seite 1 von 1

Datenbanktabelle anlegen

Beitrag von Aba ( / / 0 / 3 ) »
Hallo zusammen,

ich möchte zwei neue Datenbanktabellen anlegen. Folgendes Szenario: DBTabelle A enthält einen aus drei Attributen bestehenden Primärschlüssel und einige Spalten mit Zahlen- oder auch Textwerten. DBTabelle B soll die Texttabelle zu gewissen Spalten aus DBTabelle A sein. Sie soll für gewisse Spalten die Texte in unterschiedlichen Sprachen enthalten. Wie muss ich DBTabelle A anlegen, damit die zugehörigen Texte auch direkt immer dort mit angezeigt werden, also wie bspw. der MARA, wo die Materialkurztexte sich automatisch aus der MAKT gezogen und anschließend angezeigt werden.

Oder hat jemand eine andere Idee wie ich das Problem lösen könnte, dass ich manche Spalteninhalte in x Sprachen haben muss?

Vielen Dank
Aba

gesponsert
Stellenangebote auf ABAPforum.com schalten
kostenfrei für Ausbildungsberufe und Werksstudenten


Re: Datenbanktabelle anlegen

Beitrag von 4byte (Specialist / 124 / 37 / 35 ) »
Hallo Aba

dal legst du eine Texttabelle mit einem Sprachenschlüssel an und bildest einen Fremdschlüssel von DB A zu DB B

Siehe diesen Beitrag: https://www.abapforum.com/forum/viewtop ... =2&t=11107

Grüße 4Byte
Es gibt 10 Menschen die binär verstehen :)

Re: Datenbanktabelle anlegen

Beitrag von DeathAndPain (Top Expert / 1933 / 252 / 410 ) »
Nur eine Texttabelle wird nicht reichen, wenn Du das SAP-konform machen möchtest. Das wäre auch massiver Overhead, denn wenn z.B. in Spalte 1 der Wert X in 100 Zeilen Deiner Tabelle vorkommt, dann hätte Deine "Texttabelle" in 100 Zeilen denselben Text dazu, und das pro Sprache. Das wäre massive redundante Speicherplatzverschwendung.

Du musst:

- für jeden "textbehafteten" Wert ein eigenes Datenelement nebst eigener Domäne in der SE11 anlegen
- für die Domäne eine Wertetabelle definieren, die die möglichen Ausprägungen dieses Wertes enthält
- zu der Wertetabelle eine Texttabelle anlegen (Anleitungen dazu findet man im Netz)

Dann ist das nicht nur konform mit dem SAP-Standard, sondern Du speicherst auch den Text zu jedem Wert nur genau einmal. Deine Nutzdatentabelle nutzt dann all diese von Dir zuvor definierten Datenelemente. Du verweist auf die jeweiligen Wertetabellen als Fremdschlüssel, und wenn Du alles richtig gemacht hast, dann hast Du nicht nur den jeweiligen Text in der benötigten Sprache im Zugriff, sondern auch automatische Suchhilfen mit Text für die betreffenden Felder.

Re: Datenbanktabelle anlegen

Beitrag von Aba ( / / 0 / 3 ) »
Hallo DeathandPain,

"Nur eine Texttabelle wird nicht reichen, wenn Du das SAP-konform machen möchtest. Das wäre auch massiver Overhead, denn wenn z.B. in Spalte 1 der Wert X in 100 Zeilen Deiner Tabelle vorkommt, dann hätte Deine "Texttabelle" in 100 Zeilen denselben Text dazu, und das pro Sprache. Das wäre massive redundante Speicherplatzverschwendung."
Das verstehe ich ehrlich gesagt nicht wirklich.

Bei meiner Tabelle wird es so sein, dass in unterschiedlichen Spalten nicht die gleichen Texte vorkommen können. Jede Spalte hat zwar mögliche Texte, die aber nur in der Spalte auftauchen werden.

Muss ich dann trotzdem extra Domänen anlegen? Das Problem was ich daran sehe, ist dass der Endanwender dann ja keine neuen Texte eingeben kann. Diese müsste ich dann ja wieder pflegen. Zum momentanen Zeitpunkt sind jedoch nicht alle Texte bekannt.

Re: Datenbanktabelle anlegen

Beitrag von DeathAndPain (Top Expert / 1933 / 252 / 410 ) »
Seufz. Hier ist - zur Vereinfachung noch ohne eine Sprachenspalte - eine Tabelle mit drei ID-Spalten und zugehörigen Textspalten, so wie Du sie Dir vorstellen würdest (jedenfalls wenn ich Dich richtig verstanden habe):

Code: Alles auswählen.

Spalte 1   Spalte 1 Text      Spalte 2   Spalte 2 Text      Spalte 3   Spalte 3 Text
   1          Hans               17          Gerda             3          Bello
   2          Klaus              25          Maike             2          Schnippi
   3          Franz              17          Gerda             3          Bello
   4          Herbert            17          Gerda             2          Schnippi
Wie Du siehst, hat z.B. bei Spalte 2 die ID 17 den Text "Gerda". Diese Information steht aber gleich dreimal in der Tabelle (nämlich in drei Zeilen)! Das ist sinnlose Redundanz. Richtig wäre, die Textspalte mit "Gerda" drin wegzulassen und nur die ID reinzuschreiben. In einer separaten Wertetabelle für die Domäne der Spalte 2 steht dann:

Code: Alles auswählen.

ID   Wert
17   Gerda
25   Maike
Dann kannst Du auch zehntausend Zeilen mit der ID 17 in Spalte 2 haben, ohne zehntausendmal den Text "Gerda" mit in der Datenbank ablegen zu müssen! Das ist die Idee der Wertetabelle einer Domäne: Sie legt die möglichen Werte für ein Feld fest. Die Texttabelle erstellst Du dann zu der Wertetabelle, um (für jede benötigte Sprache) jedem Wert der Wertetabelle einen Text zuzuordnen.

In die Nutzdatentabelle, in der Deine Anwendungsdaten stehen, gehört der ganze Kram nicht rein!

Re: Datenbanktabelle anlegen

Beitrag von Aba ( / / 0 / 3 ) »
Das mit der Domäne habe ich jetzt verstanden, danke. Jetzt fehlt mir nur noch die Möglichkeit, die in der Wertetabelle der Domäne hinterlegten Werte zu übersetzen. Ich habe gesehen, dass man das ja mit der SE63 machen könnte. Das finde ich aber nicht so schön, weil der Endanwender die Werte eigentlich pflegen soll.
Wie kann man zu der Wertetabelle der Domäne jetzt eine Texttabelle anlegen? Habe dazu leider nichts gefunden.


Seite 1 von 1

Vergleichbare Themen

2
Antw.
1083
Views
Anlegen von Daten in Datenbanktabelle
von SLUK » 25.02.2018 19:40 • Verfasst in ABAP® für Anfänger
6
Antw.
1409
Views
Datenbanktabelle
von HH_ABAP » 29.03.2019 15:10 • Verfasst in ABAP® für Anfänger
47
Antw.
9661
Views
fehlerhafte Datenbanktabelle
von abuma » 09.02.2018 16:26 • Verfasst in ABAP® für Anfänger
2
Antw.
1739
Views
Datenbanktabelle als Unicode
von dimes » 19.05.2008 14:40 • Verfasst in ABAP® Core
5
Antw.
16764
Views
Datenbanktabelle Update
von km216 » 06.04.2011 10:29 • Verfasst in ABAP® für Anfänger

Über diesen Beitrag


Die Frage ist als "gelöst" markiert. Den entsprechend Beitrag findest du hier.

Unterstütze die Community und teile den Beitrag für mehr Leser und Austausch

Newsletter Anmeldung

Keine Beiträge verpassen! Wöchentlich versenden wir lesenwerte Beiträge aus unserer Community.
Die letzte Ausgabe findest du hier.
Details zum Versandverfahren und zu Ihren Widerrufsmöglichkeiten findest du in unserer Datenschutzerklärung.