Ergebnis 1 bis 5 von 5

Thema: Eine Datenbank stellt Tabelle per View einer anderen zur Verfügung

  1. #1
    richard_lavoie ist offline Neuer Benutzer
    Registriert seit
    27.02.2007
    Beiträge
    5

    Standard Eine Datenbank stellt Tabelle per View einer anderen zur Verfügung

    Hallo zusammen,

    ich habe eine Webanwendung, die auf eine Postgres-Datenbank zugreift. Die Konfiguration ist in der Datenbank hinterlegt.
    Jetzt soll die Webanwendung erweitert werden. Da das Datenmodell dies nicht vorsehen muss ich 2 Datenbanken für die 2 Tabellen unterschiedlichen Konfigurationen laufen lassen, was eine große Verschwendung ist, weil die meisten anderen Tabellen übereinstimmen.
    Ich habe aber den Tipp bekommen, dass ich mir eine View auf die Tabelle erstelle und sie der anderen Datenbank zur Verfügung stellen soll, damit alle wichtigen Daten in einer Datenbank zusammenlaufen. Gibt es dafür ein Stichwort, bzw. ein Tutorial, oder hat jemand vielleicht eine Idee wie sowas realisiert werden kann in Postgres auch mit Hinblick auf Performanz?

    Vielen Dank im vorraus
    Richard

  2. #2
    akretschmer ist offline Super-Moderator
    Registriert seit
    29.10.2006
    Ort
    Dresden
    Beiträge
    5.468

    Standard

    Zitat Zitat von richard_lavoie Beitrag anzeigen
    Hallo zusammen,

    ich habe eine Webanwendung, die auf eine Postgres-Datenbank zugreift. Die Konfiguration ist in der Datenbank hinterlegt.
    Jetzt soll die Webanwendung erweitert werden. Da das Datenmodell dies nicht vorsehen muss ich 2 Datenbanken für die 2 Tabellen unterschiedlichen Konfigurationen laufen lassen, was eine große Verschwendung ist, weil die meisten anderen Tabellen übereinstimmen.
    Du wirst keine 2 Datenbanken brauchen. Vielleicht 2 Schemas.

    Ich habe aber den Tipp bekommen, dass ich mir eine View auf die Tabelle erstelle und sie der anderen Datenbank zur Verfügung stellen soll, damit alle wichtigen Daten in einer Datenbank zusammenlaufen.
    Wie gesagt, Du wirst keine 2 Datenbanken wollen, höchstens 2 Schemas. Aber wahrscheinlich nicht einmal das.

    Gibt es dafür ein Stichwort, bzw. ein Tutorial, oder hat jemand vielleicht eine Idee wie sowas realisiert werden kann in Postgres auch mit Hinblick auf Performanz?
    Deine Frage ist sehr, sehr schwammig. Ein VIEW ist schnell erstellt: einfach ein vorhandenes SELECT vorne mit "CREATE VIEW mein_view AS" erweitern.

    Ansonsten: Handbuch lesen.


    Andreas
    --
    ads Das hatte dir akretschmer gestern schon gesagt und siehe da sobald du das machst, funktioniert es ;-)
    https://www.xing.com/profile/Andreas_Kretschmer7

  3. #3
    richard_lavoie ist offline Neuer Benutzer
    Registriert seit
    27.02.2007
    Beiträge
    5

    Standard

    Hallo Andreas,

    bei der Webanwendung kann nur eine Datenbank angegeben werden. Somit bin ich im Schema public.
    Die Konfiguration befindet sich z. B. in der Tabelle conf.
    Wenn ich eine 2. Webanwendung laufen lassen will muss ich wieder eine Datenbank angeben. In dieser wurde ich die Tabelle conf anpassen.
    Selbst wenn es mit den Schemata klappen wuerde, haette ich immernoch das Problem, dass sich die Daten nicht in einer Haupttabelle z. B. Kunden befinden und muss sie mir zusammen suchen: Nehmen wir an ich habe europäische und amerikanische Kunden fuer die das metrische System ja anders definiert ist. Das konfiguriere ich in der conf Tabelle und habe somit 2 Portale einmal fuer die Europäer und einmal fuer die Amerikaner.
    Ich moechte aber alle Kunden in einer Tabelle haben.
    Ich hoffe, dass meine Problemstellung klarer geworden ist. Wenn nicht bitte fragen, ich bin fuer jeden Hinweis dankbar.

    Viele Gruesse
    Richard

  4. #4
    fristo ist offline Super-Moderator
    Registriert seit
    08.12.2005
    Ort
    Raum Frankfurt/Main
    Beiträge
    668

    Standard

    Hallo Richard,

    So wie man mit mehreren User auf ein und dieselbe Datenbank zugreifen kann, kann man das auch mit 2 Webanwendungen. Du mußt nur für jede Webanwendung einen User erstellen. In der conf-Tabelle kannst Du dann für jeden User die entsprechenden Daten hinterlegen und user-spezifisch abrufen. Ein andere Möglichkeit ist, pro User ein Schema anzulegen und dort die conf-Tabelle des Users zu erstellen. Mit GRAND kannst Du dann bestimmen, welcher User auf welche Tabellen Zugriff haben darf.



    mfg

    fristo
    Geändert von fristo (21.11.2007 um 18:33 Uhr)

  5. #5
    akretschmer ist offline Super-Moderator
    Registriert seit
    29.10.2006
    Ort
    Dresden
    Beiträge
    5.468

    Standard

    Zitat Zitat von richard_lavoie Beitrag anzeigen
    Hallo Andreas,

    bei der Webanwendung kann nur eine Datenbank angegeben werden. Somit bin ich im Schema public.
    Ja, Nein.

    Der Befehl 'set search_path' existiert, und auch 'alter user', mit dem man pro User diesen setzen kann.

    Die Konfiguration befindet sich z. B. in der Tabelle conf.
    Wenn ich eine 2. Webanwendung laufen lassen will muss ich wieder eine Datenbank angeben. In dieser wurde ich die Tabelle conf anpassen.
    Nein.

    Selbst wenn es mit den Schemata klappen wuerde, haette ich immernoch das Problem, dass sich die Daten nicht in einer Haupttabelle z. B. Kunden befinden und muss sie mir zusammen suchen: Nehmen wir an ich habe europäische und amerikanische Kunden fuer die das metrische System ja anders definiert ist. Das konfiguriere ich in der conf Tabelle und habe somit 2 Portale einmal fuer die Europäer und einmal fuer die Amerikaner.
    Ja, und?
    Code:
    test=# create table kunden (id int, land text);
    CREATE TABLE
    Time: 113.418 ms
    test=*# commit;
    COMMIT
    test=# insert into kunden values(1, 'ami');
    INSERT 0 1
    Time: 1.720 ms
    test=*# insert into kunden values(2, 'deutscher');
    INSERT 0 1
    Time: 0.960 ms
    test=*# select id, case when land='ami' then 'gallone' when land='deutscher' then 'liter' end as tankeinheit from kunden;
     id | tankeinheit
    ----+-------------
      1 | gallone
      2 | liter
    (2 rows)
    
    Time: 1.612 ms
    Ich moechte aber alle Kunden in einer Tabelle haben.
    Ich hoffe, dass meine Problemstellung klarer geworden ist. Wenn nicht bitte fragen, ich bin fuer jeden Hinweis dankbar.

    Viele Gruesse
    Richard
    Das zu realisieren gibt es viele Wege...

    Andreas
    --
    ads Das hatte dir akretschmer gestern schon gesagt und siehe da sobald du das machst, funktioniert es ;-)
    https://www.xing.com/profile/Andreas_Kretschmer7

Ähnliche Themen

  1. Antworten: 4
    Letzter Beitrag: 01.03.2011, 12:05
  2. Antworten: 4
    Letzter Beitrag: 03.05.2010, 14:10
  3. Antworten: 1
    Letzter Beitrag: 19.06.2009, 07:06
  4. View über eine 10GB große Tabelle?
    Von CenText im Forum Allgemeines
    Antworten: 13
    Letzter Beitrag: 08.02.2008, 01:44
  5. Antworten: 2
    Letzter Beitrag: 19.09.2007, 16:57

Berechtigungen

  • Neue Themen erstellen: Nein
  • Themen beantworten: Nein
  • Anhänge hochladen: Nein
  • Beiträge bearbeiten: Nein
  •  

Links: Tobias Bauer - IT- und Funkdienstleistungen   -   Bilderrahmen-kaufen.de - Der Onlineshop für Bilderrahmen & Fotorahmen   -   Funkforum