Startseite
  • » Home
  • » Handbuch & FAQ
  • » Forum
  • » Übersetzungsserver
  • » Suche
Startseite › Forum › Drupalcenter.de › Anfängerfragen ›

[gelöst] Tabellenaufbau in der Datenbank

Eingetragen von SandraNetthoefel (110)
am 26.02.2013 - 11:20 Uhr in
  • Anfängerfragen
  • Drupal 7.x

Hallo,

ich habe Daten per Feed Import in Datenbank importiert. Mit Node Limit und entsprechenden Benutzerrechten sorge ich eig. dafür, dass jeder User nur seine eigenen Einträge sehen kann. Beim Admin alles chick. Bei den anderen Usern werden die Daten zwar importiert, tauchen danach aber nicht mehr auf. (Es geht um Kundedaten, jeder soll nur seine eigenen Kundendaten importieren und ansehen, änder, etc. können).

Also blickte ich in die Datenbank, die ich bis dato Drupal überlassen habe und kam gar nicht klar. Erwartet hätte ich eine Tabelle "Kunden" mit den entsprechenden Daten drin. Ich hätte nun geguckt bei welchem User die importierten Daten denn nun gelandet sind. Was ich fand war eine Sammlung einzelner Felder, einmal als field_revision_field_kunden_nachname und einmal als field_data_field_kunden_nachname . Für jede "Spalte" der Tabelle "Kunden" also eine eigene Tabelle. Habe ich beim Anlegen schon etwas falsch gemacht oder ist das so beabsichtigt?

Des Weiteren habe ich meine in diesen Tabellen nur die Daten gefunden die nicht im View Kunden angezeigt werden. Die Daten die ich manuell angelegt habe oder beim Admin importiert habe konnte ich nicht entdecken.

Kann mir jemand auf die Sprünge helfen, wie ich die Logik der DB entschlüsseln kann?

Vielen Dank, Sandra

‹ ... gemeinsam an Projekten arbeiten. [gelöst] Tabellenaufbau in der Datenbank ›
  • Anmelden oder Registrieren um Kommentare zu schreiben

Das hat schon seine

Eingetragen von montviso (2188)
am 26.02.2013 - 12:47 Uhr

Das hat schon seine Richtigkeit mit diesen Zusatztabellen.
Entscheidend ist allerdings die Tabelle Node.
Ich gehe mal davon aus, daß beim Feed-Import neue Nodes erzeugt werden?
Dann sollte in der Datenbank bei jedem Node auch die ID des entsprechenden User für den die Daten importiert wurden, stehen.
Und hier steht auch der Typ. D.h. wenn Dein Inhaltstyp z.B. 'Kunden' heißt, dann stünde in der Daba Tabelle Node Spalte type 'kunden'

Die Tabellen field_revision_field_kunden_nachname und field_data_field_kunden_nachname sind dann jeweils über die Spalte entity_id mit der nid (ID des Nodes) verknüpft.

Diese Tabellen werden automatisch erstellt, wenn Du ein neues Feld beim Inhaltstyp hinzufügst.

  • Anmelden oder Registrieren um Kommentare zu schreiben

UserID ist 0

Eingetragen von SandraNetthoefel (110)
am 26.02.2013 - 13:51 Uhr

Danke, jetzt blicke ich schon eher durch. Wie ich aber feststellen kann ist bei vielen Nodes die UserID 0.
Beim Import scheint also nicht die korrekte UserId zugeordnet zu werden. Ist das ein Einstellungsfehler?
Sollte ich per Tamper die UserId automatisch mitgeben?

  • Anmelden oder Registrieren um Kommentare zu schreiben

UserID ist 0

Eingetragen von SandraNetthoefel (110)
am 26.02.2013 - 13:51 Uhr

Danke, jetzt blicke ich schon eher durch. Wie ich aber feststellen kann ist bei vielen Nodes die UserID 0.
Beim Import scheint also nicht die korrekte UserId zugeordnet zu werden. Ist das ein Einstellungsfehler?
Sollte ich per Tamper die UserId automatisch mitgeben?

  • Anmelden oder Registrieren um Kommentare zu schreiben

Ja, ich habe vorhin bei mir

Eingetragen von montviso (2188)
am 26.02.2013 - 14:21 Uhr

Ja, ich habe vorhin bei mir in der Datenbank nachgeschaut, weil ich auch Feeds importiere.
Das mache ich als Admin und es steht dann als User-ID 0 drinnen.
Das passiert offensichtlich beim Feeds-Import, wenn man nicht ausdrücklich eine User-ID angibt.
Allerdings werden die Nodes bei mir dennoch angezeigt, egal, ob ich als Admin, angemeldeter User oder Gast drauf gucke, weil ich keine Einschränkungen in den Rechten vorgenommen habe.

Du müßtest also im Feed noch irgendwie dafür sorgen, daß die UID von dem User, der die Feeds importiert (oder für den die Feeds importiert werden???) mit importiert wird.
WEnn Du ein Mapping für den Import erstellst, hast Du ja die Möglichkeit einen Wert aus Deinen Daten für das Feld Benutzer-ID zu liefern.

Wie das dann am Besten funktioniert (z.B. Tabelle in der CSV anlegen mit der User-ID) hängt natürlich davon ab, was Du genau machst.

Ach lese gerade, daß Du mit Tamper arbeitest.
Ja, das klingt gut.
Ich bin gar nicht informiert, ob Tamper ein Plugin für diese Aufgabe mitliefert.
Ich habe mir aus dem Netz ein Plugin besorgt, daß erlaubt mittels PHP einen Wert zu ermitteln, entweder aus der Datenbank oder eben die aktuelle User-ID des angemeldeten Users.

Ich denke, ich werde noch ein Tamperfeld einfügen, das mir überall den Default-Wert 1 für Admin einfügt als User-ID.

Jetzt habe ich auch noch was gelernt bei dem Thread ;-)

  • Anmelden oder Registrieren um Kommentare zu schreiben

Keine Möglichkeit zusätzliches Feld einzufügen

Eingetragen von SandraNetthoefel (110)
am 27.02.2013 - 10:44 Uhr

Hast du das mit dem zusätzlichen Tamperfeld ausprobiert?
Ich finde bei Tamper keine Möglichkeit ein zusätzliches Feld zu definieren.

  • Anmelden oder Registrieren um Kommentare zu schreiben

Das Feld muß im Mapping schon

Eingetragen von montviso (2188)
am 27.02.2013 - 11:03 Uhr

Das Feld muß im Mapping schon bereit gestellt werden, damit Du es im Tamper bearbeiten kannst.

Ich habe für ähnliche Zwecke keine andere Lösung gefunden, als irgendeine Spalte zu verwenden, die anderweitig noch nicht im Einsatz ist.
Da kann dann drinnen stehen, was will, das wird mit der User-Id dann überschrieben.

Ich importiere Produktdaten von Affiliate-Partnern.
Da hats immer ein paar Felder, die anderweitig nicht gebraucht werden.
Z.B. steht die Lieferfrist drinnen, die mich nicht interssiert.
Das überschreibt ich dann mit einer intern vergebenen Händler-ID.

Keine Ahnung, ob Du Deine Import-Dateien vorher manipulieren kannst, damit es so ein zusätzliches Feld gibt?

  • Anmelden oder Registrieren um Kommentare zu schreiben

So komme ich nicht weiter...

Eingetragen von SandraNetthoefel (110)
am 27.02.2013 - 12:16 Uhr

Ein zusätzliches Feld muss automatisch angelegt werden. Das heißt es muss auch importiert werden, wenn der User es nicht in seiner Tabelle angelegt hat.
Der User ist ein absoluter DAU und es war schon schwierig genug ihm zu erklären was eine CSV-Datei ist. Das scheint Tamper nicht zu können.
Das Modul Tamper_PHP hat mein komplettes System lahmgelegt und ich musste es per Hand in der DB wieder loswerden (wieder was gelernt - juhu!).

Momentan kommt mir langsam der Gedanke, dass ich etwas am Modul selbst ändern muss. Da ich immer wenn ich Daten importiere die UID brauche,
könnte ich das Modul doch so abwandeln, dass es immer die UID mitschickt ('uid' => $drupal_user_id). Allerdings habe ich noch nie ein Modul verändert und
Feeds ist dann gleich noch so umfangreich...

  • Anmelden oder Registrieren um Kommentare zu schreiben

Ja, bei dem Tamper-PHP hatte

Eingetragen von montviso (2188)
am 27.02.2013 - 12:37 Uhr

Ja, bei dem Tamper-PHP hatte ich auch erst ein Plugin, das nicht funktioniert hat.
Jetzt habe ich noch mal den Link rausgesucht, wo ich meines her habe:
http://drupal.org/node/1297968

Ich würde nicht das Feeds-Modul anfassen.
Da gibt es bessere Methoden.

Für Deinen Zweck mit Manipulation der Daten beim Import könnte Feeds Rules funktionieren.

Ich mache noch andere Manipulationen.
Da werden Produktdaten von einem bestimmten Händler alle deaktiviert, wenn sie nicht im aktuellen Importfile enthalten sind.
D.h. ich muß Nodes manipulieren, die n i c h t im eigentlichen Import-Vorgang manipuliert werden.
Dafür konnte ich die Rules nicht brauchen, sondern ich habe ein Minimodul mit Cron-Hook, wo nach dem Ereignis "Feed ist erfolgreich importiert" noch was passiert.

Für Deinen Zweck könnte es mit Rules klappen.

Ohhhjaaa...das ist sehr gewagt, User etwas importieren zu lassen, das mache ich n o c h nicht ;-)

  • Anmelden oder Registrieren um Kommentare zu schreiben

Feeds Rules

Eingetragen von SandraNetthoefel (110)
am 27.02.2013 - 12:43 Uhr

Feeds Rules habe ich auch gerade gefunden...ich teste...ich berichte ;-)

  • Anmelden oder Registrieren um Kommentare zu schreiben

Keine Dokumentation

Eingetragen von SandraNetthoefel (110)
am 28.02.2013 - 12:52 Uhr

Leider finde ich zu Feeds Rules keine geeignete Dokumentation :-(

  • Anmelden oder Registrieren um Kommentare zu schreiben

Ja, das ging mir auch

Eingetragen von montviso (2188)
am 01.03.2013 - 07:32 Uhr

Ja, das ging mir auch so.
Hast Du denn mit dem Rules Modul generell schon mal gearbeitet?
Das Prinzip ist ja immer ähnlich.

  • Anmelden oder Registrieren um Kommentare zu schreiben

Keine Erfahrungen mit Rules

Eingetragen von SandraNetthoefel (110)
am 01.03.2013 - 09:38 Uhr

Nein, ich habe mit Rules noch gar nicht gearbeitet und auch die erklären sich nicht auf den ersten Blick.
Aber wenn das Prinzip ähnlich ist, dann halte ich Ausschau nach einer Doku für Rules.

  • Anmelden oder Registrieren um Kommentare zu schreiben

Das Problem ist ja immer

Eingetragen von montviso (2188)
am 01.03.2013 - 10:27 Uhr

Das Problem ist ja immer dieses:

1. Es gibt ein Ereignis
2. Dieses Ereignis hat eine Aktion zur Folge
3. Diese Aktion kann durch bestimmte Bedinungen eingeschränkt durchgeführt werden.

Das Besondere an Feeds Rules ist also nur, daß es bestimmte Ereingnisse hinzufügt, die für Feeds typisch sind.
(Ich hoffe, das stimmt so ;-))

Die tutorials für Drupal 6
http://drupal.org/node/1541578
dürften im Großen und Ganzen noch gelten.
U.a. damit habe ich mich reingearbeitet.

  • Anmelden oder Registrieren um Kommentare zu schreiben

Auch Feeds Rules bietet keine Lösung

Eingetragen von SandraNetthoefel (110)
am 08.03.2013 - 15:49 Uhr

Hallo noch einmal,

Rules habe ich jetzt verstanden, allerdings finde ich dennoch keinen Zugang zu Feeds Rules.
Da es auch keine Dokumentation gibt, habe ich das wieder verworfen und nun mit dem Tamper PHP
angefangen. Was funktioniert hat, ist ich habe UID mit Benutzer-ID gemappt und dann per Tamper
als Default-Value eine BenutzerID angegeben - Klappt. Aber da mein Benutzer seine ID ja nicht kennt
wollte ich nun mit Tamper PHP die ID in das Feld schreiben: $field = $drupal_user_id;
Ich gehe davon aus, dass das einfach zu kurz gedacht ist als Feldmanipulation. Jedenfalls funktioniert
es nicht.

Es muss doch eine Lösung für diese Art Problem geben, immerhin ist es nichts ungewöhnliches, dass
man versucht Benutzerbezogene Daten zu importieren.

  • Anmelden oder Registrieren um Kommentare zu schreiben

Ergänzung

Eingetragen von SandraNetthoefel (110)
am 08.03.2013 - 16:24 Uhr

Die Fehlermeldung ist: User is not authorized to create content type kunden (wenn ich als Default Value $drupal_user_id angebe)
und seltsamerweise importiert er die Datei beim zweiten mal dann, aber ohne eine UID zu setzen.

  • Anmelden oder Registrieren um Kommentare zu schreiben

Hi, woher kommt denn die

Eingetragen von montviso (2188)
am 08.03.2013 - 16:40 Uhr

Hi,
woher kommt denn die Variable $drupal_user_id?
Ich schätze, die mußt Du erst bekannt machen.
Und dann die User-ID mit print ins Feld schreiben.
Die Variable $field habe ich in dem Zusammenhang mit Tamper noch nicht verwendet.

Probier mal so:

<?php
global $user;
$drupal_user_id = $user->uid;
print
$drupal_user_id;
?>

  • Anmelden oder Registrieren um Kommentare zu schreiben

Bin davon ausgegangen...

Eingetragen von SandraNetthoefel (110)
am 08.03.2013 - 17:20 Uhr

...das $user immer global ist. Die Lösung ist:

global $user;
return $field = $user->uid;

Also Feeds Import --> Tamper --> Execute PHP Code und dann den Quellcode eintragen!

Vielen lieben Dank für die gemeinschaftliche Problemlösung! Ich habe sehr viel anderes nebenher dazugelernt.

Liebe Grüße Sandra

  • Anmelden oder Registrieren um Kommentare zu schreiben

Ja super, ich auch

Eingetragen von montviso (2188)
am 08.03.2013 - 17:29 Uhr

Ja super, ich auch ;-)
Welches Execute PHP hast Du denn inzwischen in Verwendung?
Klappt das jetzt Fehlerfrei?

  • Anmelden oder Registrieren um Kommentare zu schreiben

Das Modul ist...

Eingetragen von SandraNetthoefel (110)
am 08.03.2013 - 17:35 Uhr

http://drupalmodules.com/module/feeds-tamper-php und kann dann beim Feeds Import Modul --> Tamper ausgewählt werden.

  • Anmelden oder Registrieren um Kommentare zu schreiben

Oh danke. Das

Eingetragen von montviso (2188)
am 08.03.2013 - 17:41 Uhr

Oh danke.
Das feeds-tamper-php-Modul gab's evt. noch nicht, als ich mich vor ein paar Monaten danach umgeschaut hatte.
Oder ich habe es übersehen.
Bei der Suche habe ich immer nur die Plugins gesehen.

  • Anmelden oder Registrieren um Kommentare zu schreiben

Benutzeranmeldung

  • Registrieren
  • Neues Passwort anfordern

Aktive Forenthemen

  • für drupal11 ein Slider Modul
  • [gelöst] W3CSS Paragraphs Views
  • Drupal 11 neu aufsetzen und Bereiche aus 10 importieren
  • Wie erlaubt man neuen Benutzern auf die Resetseite zugreifen zu dürfen.
  • [gelöst] Anzeigeformat Text mit Bild in einem Artikel, Drupal 11
  • Social Media Buttons um Insteragram erweitern
  • Nach Installation der neuesten D10-Version kein Zugriff auf Website
  • Composer nach Umzug
  • [gelöst] Taxonomie Begriffe zeigt nicht alle Nodes an
  • Drupal 11 + Experience Builder (Canvas) + Layout Builder
  • Welche KI verwendet ihr?
  • Update Manger läst sich nicht Installieren
Weiter

Neue Kommentare

  • melde mich mal wieder, da ich
    vor 2 Wochen 4 Tagen
  • Hey danke
    vor 2 Wochen 5 Tagen
  • Update: jetzt gibt's ein
    vor 2 Wochen 5 Tagen
  • Hallo, im Prinzip habe ich
    vor 3 Wochen 3 Tagen
  • Da scheint die Terminologie
    vor 3 Wochen 3 Tagen
  • Kannst doch auch alles direkt
    vor 4 Wochen 13 Stunden
  • In der entsprechenden View
    vor 4 Wochen 13 Stunden
  • Dazu müsstest Du vermutlich
    vor 4 Wochen 13 Stunden
  • gelöst
    vor 6 Wochen 4 Tagen
  • Ja natürlich. Dass ist etwas,
    vor 6 Wochen 5 Tagen

Statistik

Beiträge im Forum: 250233
Registrierte User: 20458

Neue User:

  • Znogsnernoimb
  • ByteScrapers
  • Mroppoofpaync

» Alle User anzeigen

User nach Punkten sortiert:
wla9461
stBorchert6003
quiptime4972
Tobias Bähr4019
bv3924
ronald3857
md3717
Thoor3678
Alexander Langer3416
Exterior2903
» User nach Punkten
Zur Zeit sind 0 User und 21 Gäste online.

Hauptmenü

  • » Home
  • » Handbuch & FAQ
  • » Forum
  • » Übersetzungsserver
  • » Suche

Quicklinks I

  • Infos
  • Drupal Showcase
  • Installation
  • Update
  • Forum
  • Team
  • Verhaltensregeln

Quicklinks II

  • Drupal Jobs
  • FAQ
  • Drupal-Kochbuch
  • Best Practice - Drupal Sites - Guidelines
  • Drupal How To's

Quicklinks III

  • Tipps & Tricks
  • Drupal Theme System
  • Theme Handbuch
  • Leitfaden zur Entwicklung von Modulen

RSS & Twitter

  • Drupal Planet deutsch
  • RSS Feed News
  • RSS Feed Planet
  • Twitter Drupalcenter
Drupalcenter Team | Impressum & Datenschutz | Kontakt
Angetrieben von Drupal | Drupal is a registered trademark of Dries Buytaert.
Drupal Initiative - Drupal Association