Ankündigung

Einklappen
Keine Ankündigung bisher.

Datenbankinhalte externen Seiten zur Verfügung stellen

Einklappen

Neue Werbung 2019

Einklappen
X
  • Filter
  • Zeit
  • Anzeigen
Alles löschen
neue Beiträge

  • Datenbankinhalte externen Seiten zur Verfügung stellen

    Hallo...

    ich suche nach einer Lösung, bzw. einem guten Konzept für folgendes Problem / folgende Aufgabenstellung:

    4 Restaurant mit jeweils 5 unterschiedlichen Tagesessen würden gerne eine gemeinsame Homepage betreiben, auf der alle Mittagessen aufgeführt werden (also 20 Mittagessen jeden Tag).
    Die Idee wäre nun, eine Homepage mit einer Datenbank zu entwickeln, auf der alle 4 Restaurants Ihre Tagesessen eintragen können. Soweit, so gut und so einfach.
    Allerdings wäre es für die Restaurantbetreiber auf Dauer doch relativ viel Arbeit, zumal die 4 Restaurant jeweils auch noch eine eigene Homepage haben, auf der die Tagesessen angepriesen werden.

    Gibt es also eine Möglichkeit, dass alle 4 Restaurantbetreiber Ihre Tagesessen in die zentrale Datenbank eintragen und dann, um die doppelte Arbeit zu vermeiden, Ihre eigene Seite irgendwie an die Datenbank hängen und damit die eigene Seite füllen. Und das am besten ohne dass die anderen Restaurantbetreiber auf die jeweils eigenen Tagesessen zugreifen können. Und das ganze sollte zudem noch erweiterbar, sicher und performant sein, wenn es dann einmal nicht mehr nur 4 Restaurants, sondern 4000 Restaurants oder noch mehr sind und es damit auch viele Anfragen an die Datenbank gibt.

    Vielen Dank im Voraus für Eure Ideen.
    Chitinox


  • #2
    Zitat von chitinox Beitrag anzeigen

    Gibt es also eine Möglichkeit, dass alle 4 Restaurantbetreiber Ihre Tagesessen in die zentrale Datenbank eintragen und dann, um die doppelte Arbeit zu vermeiden, Ihre eigene Seite irgendwie an die Datenbank hängen und damit die eigene Seite füllen.

    Ja.
    PostgreSQL Development, 24x7 Support, Remote DBA, Training & Services

    Kommentar


    • #3
      OK... danke für die schnelle und qualifizierte Antort.
      Mit solchen Antwort kommt man natürlich auf knapp 3000 Beiträge innerhalb von 2 Jahren...

      Da mein letzter Satz
      Vielen Dank im Voraus für Eure Ideen
      wohl offensichtlich falsch verstanden werden kann, werde ich meine Frage etwas präzisieren:
      Was habe ich für Möglichkeiten, mein oben beschriebenes Problem performant und unter Einbehaltung aller sicherheitsrelevanten Bedingungen zu lösen.

      Vielen Dank für weitere sinnvolle Beiträge
      Chitinox

      Kommentar


      • #4
        Macht sich immer gut Helfer von denen man etwas will blöd anzumachen! *unglaulich*

        Wo ist den dein eigener Ansatz, wie willst würdest du es wenn du dir selbst was überlegen müsstest lößen? Wir können dir ja dann sagen ob das eine gute Idee ist oder nicht - aber wir übernehmen nicht das denken für dich!
        Gruß,
        SebTM

        Kommentar


        • #5
          Hallo SebTM,

          hey sorry, aber es ist mir doch völlig klar, dass sich mein oben beschriebenes Problem lösen lässt. Die Frage war nicht ob, sondern wie.
          Oder fandest Du die Anwort hilfreich?

          Ich schreibe meine Lösungsvorschläge mal eben rein... Moment

          Kommentar


          • #6
            Macht sich immer gut Helfer von denen man etwas will blöd anzumachen! *unglaulich*
            Würde ich zustimmen, aber in diesem Fall ist die Reaktion, meiner Meinung nach, sehr verständlich.

            Lösungsvorschläge:
            Die Restaurants könnten in ihren eigenen Datenbanken eine Tabelle mit den Mittagsessen anlegen. Einen User erstellen, der nur auf diese Tabelle Sichtrechte(*) hat, von der gemeinsamen Seite aus über den entsprechenden User auf die Tabelle zugreifen und auslesen.
            Ist natürlich eine schlechte Lösung, wenn 4000 Restaurants angeschlossen sind, hat man auch 4000 Datenbanken angeschlossen.

            (*) Kenn mich mit den Rechten in Datenbanken nicht so aus, ist nur eine Idee.

            Weitere Variante: Webservices
            Eine Schnittstelle einrichten, die die Daten per Soap/whatever holt.
            Selber Nachteil wie bei den verschiedenen Datenbanken, schätze es aber weniger aufwendig ein.

            Variante Replikation:
            Die Tabellen mit den Mittagsmenüs werden in der zentralen Datenbank zusammengefügt, bei Änderungen wird die Tabelle aktualisiert. Kenn ich mich gar nicht mit aus, solltest du dir aber wohl mal genauer ansehen.


            Du müsstest deine Vorstellungen etwas genauer definieren, welche sind denn zum Beispiel die sicherheitsrelevanten Bedingungen?

            edit: waren nur mal schnell zusammengeschriebene Möglichkeiten, den Webservice könnte man natürlich auch umdrehen, von den einzelnen Seiten auf die zentrale wodurch der Nachteil entfällt.
            Relax, you're doing fine.
            RTFM | php.de Wissenssammlung | Datenbankindizes | Dateien in der DB?

            Kommentar


            • #7
              Also, hier in Stichpunkten meine Lösungen - aber alle irgendwie nicht perfekt.

              Lösung 1:
              Die 4 Restaurantbetreiber erhalten die Zugangsdaten zu der Datenbanktabelle, bzw. eine Query, wie die Daten speziell für Ihr Restaurant abgerufen werden können. Das Ergebnis könnten Sie dann in Ihre Seite einfließen lassen.
              + relativ einfach und schnell gelöst
              - sehr unsicher
              - die Datenbank müsste mit sehr vielen Anfragen auskommen, da alles zentralisiert wäre

              Lösung 2:
              Ich generiere 4 Views auf die Datenbank für die jeweiligen 4 Restaurantbetreiber. Für diese Views würde ich den Restaurantbetreiber die Zugangsdaten, bzw. die Query zur Verfügung stellen und Sie könnten das Ergebnis in Ihre Seite einbetten.
              + relativ schnell gelöst
              - die Datenbank müsste mit sehr vielen Anfragen auskommen, da alles zentralisiert wäre
              - die vielen Views zu verwalten wäre wahrscheinlich ein enormer Aufwand

              Lösung 3:
              Ich versuche, den Restaurantbetreiber auf Knopfdruck so eine Art "Datenexport" anzubieten. Dann würde ich per PHP und MySQL ein oder mehrere SQL-Inserts erzeugen, die die Restaurantbetreiber wiederum bei sich importieren könnten.
              + wäre relativ sicher, da die Restaurantbesucher auch wirklich nur Ihre Daten erhalten würden.
              + die Last der Datenbankanfragen wäre wieder verteilt auf mehrere Server
              - viele Restaurantbetreiber wären wahrscheinlich mit dem SQL-Export überfordert

              Dann gibt es noch ein paar weitere Ideen, aber die sind noch nicht so ausgereift und wahrscheinlich ebenso wenig praktikabel...
              Ich habe auch schon im Internet und anderen Foren gesucht um eine Lösung hierfür zu finden. Leider habe ich nichts brauchbares gefunden.

              Daher meine Frage an Euch...

              Kommentar


              • #8
                Hallo,

                von Datenbankzugriff für Endkunden halte ich grundlegend nichts. Für mich ist das eine Webanwendung mit einem Frontend (also der gemeinsamen Seite), einem Backend (wo die Ihre Tagesgerichte verwalten können) und einem Webservice der es Ihnen nach entsprechender authentifizierung erlaubt alle Tagesgerichte für Tag X abzurufen. Du müsstest halt ggf. für die Codebasis der Kunden eine Implementation liefern die deine Schnnittstelle nutzt.
                Gruß,
                SebTM

                Kommentar


                • #9
                  Zitat von VPh Beitrag anzeigen
                  Würde ich zustimmen, aber in diesem Fall ist die Reaktion, meiner Meinung nach. [...]

                  Früher hatten wir hier noch eine Regel gegen "Meinungsumfragen", und auf diesen Post trifft das voll und ganz zu. Ohne eigenes Konzept ist hier eine Diskussion sinnlos - insbesondere er ja weiss "dass es möglich ist, nur nicht wie"...

                  Das ist wieder einer der ich-habe-keinen-Blassen-macht-mir-mal-meinen-Job-Beiträge.
                  GitHub.com - ChrisAndChris - RowMapper und QueryBuilder für MySQL-Datenbanken

                  Kommentar


                  • #10
                    Danke VPh für Deine Antwort.

                    Ich suche natürlich nach einer Lösung, die am besten für alle so wenig Arbeit wie möglich macht.

                    Lösungsvorschläge:
                    Die Restaurants könnten in ihren eigenen Datenbanken eine Tabelle mit den Mittagsessen anlegen. Einen User erstellen, der nur auf diese Tabelle Sichtrechte(*) hat, von der gemeinsamen Seite aus über den entsprechenden User auf die Tabelle zugreifen und auslesen.
                    Ist natürlich eine schlechte Lösung, wenn 4000 Restaurants angeschlossen sind, hat man auch 4000 Datenbanken angeschlossen.
                    Ich denke, die Menge wäre hier nicht einmal so das Problem, sondern eher, dass alle 4000 Datenbanken eine unterschiedliche Struktur haben und ich die Inhalte jeder Datenbank irgendwie in meine DB mergen müsste...

                    Weitere Variante: Webservices
                    Eine Schnittstelle einrichten, die die Daten per Soap/whatever holt.
                    Kenne mich leider mit Webservices nicht so aus... das müsste ich mir zuerst einmal anschauen. Vielen Dank für den Vorschlag.

                    Variante Replikation:
                    Die Tabellen mit den Mittagsmenüs werden in der zentralen Datenbank zusammengefügt, bei Änderungen wird die Tabelle aktualisiert.
                    Ich bin nun auch kein Datenbank oder Replikationsexperte, aber ich könnte mir vorstellen, dass ich dann so eine Art "Vertrauensstellung" zwischen den Datenbanken brauche, damit die sich überhaupt replizieren. Das ist bei 4000 DBs oder mehr dann auch vielleicht etwas schwierig...

                    Naja, mit sicherheitsrelevant meine ich eben, dass der Datenzugriff (also z.B. Berechtigungen) und die Schnittstelle sicher sein sollten.

                    Kommentar


                    • #11
                      @SebTM:
                      Dein Vorschlag geht also in die Richtung Datenexport - so wie mein 3. Vorschlag.
                      Damit könnte ich prinzipiell gut leben, aber ich weiß eben nicht, ob das dann so angenommen wird...

                      Kommentar


                      • #12
                        @ChristianK:
                        Früher hatten wir hier noch eine Regel gegen "Meinungsumfragen", und auf diesen Post trifft das voll und ganz zu. Ohne eigenes Konzept ist hier eine Diskussion sinnlos - insbesondere er ja weiss "dass es möglich ist, nur nicht wie"...
                        Das ist wieder einer der ich-habe-keinen-Blassen-macht-mir-mal-meinen-Job-Beiträge.
                        Also, wenn man in einem Forum nicht mal mehr nach anderer Menschen Meinung und deren Hilfe fragen darf, dann weiß ich nicht, was dann ein Forum überhaupt noch für einen Sinn macht.
                        Ich erwarte hier von niemandem, dass er mir meine Arbeit macht, sondern es reicht mir schon völlig, wenn man mich auf eine Idee bringt, wie ich mein Problem lösen könnte. Das könnte entweder eine Erweiterung / Verbesserung meiner gemachten Vorschläge oder ein völlig neuer Ansatz sein. Wenn ich eine Meinungsumfrage machen wollte, ginge ich zu Doodle o.ä.

                        Ich war auch schon viel in Foren unterwegs, habe mich allerdings bei Threads, wo ich keinen Beitrag leisten konnte, immer zurückgehalten.

                        Kommentar


                        • #13
                          Zitat von chitinox Beitrag anzeigen

                          Dann gibt es noch ein paar weitere Ideen, aber die sind noch nicht so ausgereift und wahrscheinlich ebenso wenig praktikabel...
                          Ich habe auch schon im Internet und anderen Foren gesucht um eine Lösung hierfür zu finden. Leider habe ich nichts brauchbares gefunden.

                          Daher meine Frage an Euch...
                          eine zentrale DB, Funktionen mit security definer, die je User eine passende Sicht zur Verfügung stellt und über die er seine Einträge pflegen kann. Und nur seine. Nix mit Tabelle je User oder so, das skaliert alles nicht.

                          Ob DU das hinbekommst weiß ich aber nicht.
                          PostgreSQL Development, 24x7 Support, Remote DBA, Training & Services

                          Kommentar


                          • #14
                            Geht es hier eigentlich Betriebskantinen von High Tech Unternehmen oder ist das nur Naivität? SQL-Inserts, Datenbanken, Replikation, Soap/Webservices?! Sicher doch...

                            Ich seh hier nur 3 mehr oder minder relaistische Szenarios. Das Resturant trägt die Daten über eine Webfrontend ein, das Resturant bekommt eine Excel Vorlage für den Speiseplan die über ein Webfrontend oder per Mail hochgeladen werden muss, du liest die Seiten der Resturants aus.

                            Zitat von chitinox
                            - die Datenbank müsste mit sehr vielen Anfragen auskommen, da alles zentralisiert wäre
                            Mach dir darüber ein Kopf wenns soweit ist. Erstens ist "Sehr viel" sehr relativ und zweitens musst du erstmal dorthin kommen. Cachen kannst du das alle mal.

                            Kommentar


                            • #15
                              Zitat von erc Beitrag anzeigen
                              Ich seh hier nur 3 mehr oder minder relaistische Szenarios. Das Resturant trägt die Daten über eine Webfrontend ein, das Resturant bekommt eine Excel Vorlage für den Speiseplan die über ein Webfrontend oder per Mail hochgeladen werden muss, du liest die Seiten der Resturants aus.
                              Das wären ja Möglichkeiten zur Pflege der Daten, spricht ja nichts gegen.
                              So wie ich es verstanden habe, ist der TE in der Situation von den Restaurants beauftragt worden zu sein, Daten von den 4 Seiten auf einer 5. Seite darzustellen.
                              Jetzt könnte man die genannten Pflegemöglichkeiten auch auf der neuen Seite implementieren, klar, aber die hier gestellte Anforderung war ja: keine doppelten Arbeiten für die Datenpfleger.

                              Vielleicht hab ich dich auch nur falsch verstanden, weitere Ausführungen erwünscht
                              Relax, you're doing fine.
                              RTFM | php.de Wissenssammlung | Datenbankindizes | Dateien in der DB?

                              Kommentar

                              Lädt...
                              X