php.de

Zurück   php.de > Webentwicklung > Software-Design

Software-Design Diskussionen auf Profi-Niveau: PHP Lösungen auf konzeptioneller Ebene

Antwort
 
LinkBack Themen-Optionen Thema bewerten
Alt 03.07.2009, 21:13  
Benutzer
 
Registriert seit: 03.07.2009
Beiträge: 58
PHP-Kenntnisse:
Fortgeschritten
Thalo befindet sich auf einem aufstrebenden Ast
Standard Business-Logik in Datenbank

Hallo,...

Ich bin mir nicht ganz sicher ob dies das richtige Forum ist -- wenn es eher in Datenbanken passt bitte verschieben

Nehmen wir an, ich habe in meiner Datenbank Pizzen -- wie verbinde ich nun mit einigen Pizzen unterschiedliche Algorithmen?


Einige Beispiel:


Pizza "Viva la summer" kann nur bestellt werden, wenn mindestens 40° Durchschnittstemperatur in Deutschland herrschen.

Pizza "Italia" nur wenn der User Italiener ist..

Eine "Bionade" kann nur bestellt werden, wenn der User Volljährig ist


Wie löst man so etwas möglichst elegant? Vielleicht ist es sogar total banal und ich stehe einfach auf dem Schlauch?

Geändert von Thalo (03.07.2009 um 21:17 Uhr).
Thalo ist offline   Mit Zitat antworten
Sponsor Mitteilung
PHP Code Flüsterer

Registriert seit: 21.08.2005
Beiträge: 4682
PHP-Kenntnisse:
Fortgeschritten

Alt 03.07.2009, 21:21  
Erfahrener Benutzer
 
Registriert seit: 05.04.2005
Beiträge: 1.333
Freeaak ist zur Zeit noch ein unbeschriebenes Blatt
Standard

eine tabelle mit pizzen
eine tabelle mit "algorithmen"
eine tabelle, die beides verbindet (in form von ids)

würde ich vorschlagen. oder hab ich deine frage falsch verstanden?
__________________
"Wenn du nicht weißt, was du tust: Machs mit Eleganz!"

(Murphy's Gesetze)
Freeaak ist offline   Mit Zitat antworten
Alt 03.07.2009, 21:22  
moderatives Dielektrikum
 
Benutzerbild von nikosch
 
Registriert seit: 21.05.2008
Beiträge: 35.994
PHP-Kenntnisse:
Fortgeschritten
nikosch hat eine strahlende Zukunftnikosch hat eine strahlende Zukunftnikosch hat eine strahlende Zukunftnikosch hat eine strahlende Zukunftnikosch hat eine strahlende Zukunftnikosch hat eine strahlende Zukunftnikosch hat eine strahlende Zukunftnikosch hat eine strahlende Zukunftnikosch hat eine strahlende Zukunftnikosch hat eine strahlende Zukunftnikosch hat eine strahlende Zukunft
Standard

die Frage ist wohl eher, wie man solche Algorithmen sinnvoll abbildet und in SQL umsetzen kann.
__________________
--
One pixel is still too big. Please make it smaller. ASAP.

Initiative Mittelstand.
Die wichtigste Gestaltungsregel im Screendesign ist Pi mal Daumen des Arbeitgebers.
--
nikosch ist gerade online   Mit Zitat antworten
Alt 03.07.2009, 21:37  
Moderator
 
Benutzerbild von Chriz
 
Registriert seit: 11.05.2008
Beiträge: 6.269
Chriz ist ein wunderbarer AnblickChriz ist ein wunderbarer AnblickChriz ist ein wunderbarer AnblickChriz ist ein wunderbarer AnblickChriz ist ein wunderbarer AnblickChriz ist ein wunderbarer AnblickChriz ist ein wunderbarer Anblick
Standard

Hallo,

auf welchem Wissensstand befindest du dich denn? Ob du einen voll-konfigurierbaren E-Shop programmieren willst (und kannst) oder seit zwei Monaten PHP lernst, hätte das ja durchaus Einfluß auf eine Antwort
__________________
"Nuschel ich?" - "Was?"
Chriz ist gerade online   Mit Zitat antworten
Alt 03.07.2009, 21:48  
Benutzer
 
Registriert seit: 03.07.2009
Beiträge: 58
PHP-Kenntnisse:
Fortgeschritten
Thalo befindet sich auf einem aufstrebenden Ast
Standard

Hi,

Das Problem ist, das ganze kann durchaus komplex werden. Beispiel Eins müsste zum Beispiel über die API eines Wetterdienstes laufen

Zitat:
Zitat von Chriz Beitrag anzeigen
Hallo,

auf welchem Wissensstand befindest du dich denn? Ob du einen voll-konfigurierbaren E-Shop programmieren willst (und kannst) oder seit zwei Monaten PHP lernst, hätte das ja durchaus Einfluß auf eine Antwort
Wenn ich jetzt was falsches sag werde ich hinterher darauf festgenagelt

Ich bin seit PHP 3 an Board -- die Applikation basiert auf dem Zend Framework


Ich hege einen recht hohen Qualitätsanspruch. Also Antworten können dementsprechend ausfallen
Thalo ist offline   Mit Zitat antworten
Alt 03.07.2009, 22:11  
Moderator und Wett-König
 
Benutzerbild von dr.e.
 
Registriert seit: 21.05.2008
Beiträge: 3.657
PHP-Kenntnisse:
Fortgeschritten
dr.e. ist ein Lichtblickdr.e. ist ein Lichtblickdr.e. ist ein Lichtblickdr.e. ist ein Lichtblickdr.e. ist ein Lichtblickdr.e. ist ein Lichtblick
dr.e. eine Nachricht über Skype™ schicken
Standard

Hi,

Zitat:
Nehmen wir an, ich habe in meiner Datenbank Pizzen -- wie verbinde ich nun mit einigen Pizzen unterschiedliche Algorithmen?
Für diese Aufgabe halte ich Business-Rules für angebracht. Hierzu würde ich definieren, wie ein Regelsatz aussieht und welche Operationen (=Auswirkungen) er auf einem Objekt erzeugen kann. Anschließend muss eine Repräsentation dieser Operation in der Datenbank angelegt und mit einem Produkt verknüpft werden.

Möchtest du z.B. eine Liste von Produkten für einen eingeloggten Benutzer anzeigen, muss der Regelsatz für den Benutzer ausgewertet werden und als zusätzliches Selektionskriterium herangezogen werden. Soviel zur Theorie.


Zitat:
Pizza "Viva la summer" kann nur bestellt werden, wenn mindestens 40° Durchschnittstemperatur in Deutschland herrschen.
Die Information "Durchschnittstemperatur" ist zunächst schwierig zu ermitteln, der "echte" Anwendungsfall dafür kann IMHO "das Produkt ist verfügbar zwischen 01.03. und 15.05." heißen. Die Regel würde also auf die Sichbarkeit des Produktes Einfluss nehmen. Aus diesem Grund muss dein Produkt Objekt-technisch ein Attribut "visibility" mitbringen. Über dieses kannst du dann bei der Selektion eine Einschränkung treffen.


Zitat:
Pizza "Italia" nur wenn der User Italiener ist..
Die hier zu beantwortende Frage lässt sich ebenso auf Sichtbarkeit reduzieren. In diesem Fall müssen nicht Informationen über das Produkt selbst, sondern die des eingeloggten Nutzers ausgewertet werden. Hier passiert also eine Einschränkung auf Grund des Typs oder der Zugehörigkeit eines Benutzers zu einem Land. Für die Abbildung gibt es IMHO eine sinnvolle Möglichkeiten: die Einschränkung passiert über die Assoziation zwischen Land und Produkt - sofern quasi Verfügbarkeiten pro Land in deinem System definierbar sind.

Zitat:
Eine "Bionade" kann nur bestellt werden, wenn der User Volljährig ist
Auch hier geht es um Daten eines Nutzes, allerdings kann das nicht wie zuvor über die Struktur der Daten abgebildet werden, sondern muss tatsächlich über das Attribut des Benutzers abgedeckt werden. Diese Daten müssen gegen Daten des Produkts (z.B. Attribut für Mindestalter, um generischer zu bleiben) vergleichen werden.

Zitat:
Wie löst man so etwas möglichst elegant? Vielleicht ist es sogar total banal und ich stehe einfach auf dem Schlauch?
Das ist eine berechtigte Frage. An sich muss es eine Mischung zwischen erweiterter Datenhaltung und einer möglichst Ressourcen-schonenden Sortier- und Ausschluss-Logik sein. Ersteres ist meiner Ansicht nach sehr einfach durch Analyse der Domäne zu erledigen, für zweiteres sehe ich das so:
In deiner Business-Schicht werden zusätzliche Regelsätze abstrahiert definiert - meinetwegen auch mit einem DB-Backend - und diese lassen sich in der Datenschicht zu einem zusätzlichen Selektionskriterium de-serialisieren, die in ein SQL-Statement eingehangen werden können. Hierzu solltest du jedoch eine Abstraktion für die Generierung der Statements schaffen, wie sie hier beschrieben ist. Dein Regel-Objekt kann dann seine eigene Logik in ein solches SQL-Regelwerk übersetzen.

Um zu definieren, wie eine solche Logik auszusehen hat, müsste ich nochmal in mich gehen. Hier ist aber vor allem dein Input hinsichtlich der erwarteten Komplexität notwendig.

Cheers,
Dr.E.
__________________
Viele Grüße,
Dr.E.

~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
1. Think about software design before you start to write code!
2. Discuss and review it together with experts!
3. Choose good tools (-> Adventure PHP Framework (APF))!
4. Write clean and reusable software only!
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
dr.e. ist offline   Mit Zitat antworten
Alt 03.07.2009, 22:17  
moderatives Dielektrikum
 
Benutzerbild von nikosch
 
Registriert seit: 21.05.2008
Beiträge: 35.994
PHP-Kenntnisse:
Fortgeschritten
nikosch hat eine strahlende Zukunftnikosch hat eine strahlende Zukunftnikosch hat eine strahlende Zukunftnikosch hat eine strahlende Zukunftnikosch hat eine strahlende Zukunftnikosch hat eine strahlende Zukunftnikosch hat eine strahlende Zukunftnikosch hat eine strahlende Zukunftnikosch hat eine strahlende Zukunftnikosch hat eine strahlende Zukunftnikosch hat eine strahlende Zukunft
Standard

Da steckt schon viel Information in der Antwort. Es wäre schön, wenn Du da noch einmal in Dich gingest, Doc E. Ich stehe nämlich aktuell vor einer ähnlichen Problematik, wenn auch nicht ganz so komplex gelagert.
__________________
--
One pixel is still too big. Please make it smaller. ASAP.

Initiative Mittelstand.
Die wichtigste Gestaltungsregel im Screendesign ist Pi mal Daumen des Arbeitgebers.
--
nikosch ist gerade online   Mit Zitat antworten
Alt 03.07.2009, 22:22  
Moderator und Wett-König
 
Benutzerbild von dr.e.
 
Registriert seit: 21.05.2008
Beiträge: 3.657
PHP-Kenntnisse:
Fortgeschritten
dr.e. ist ein Lichtblickdr.e. ist ein Lichtblickdr.e. ist ein Lichtblickdr.e. ist ein Lichtblickdr.e. ist ein Lichtblickdr.e. ist ein Lichtblick
dr.e. eine Nachricht über Skype™ schicken
Standard

Hmm, das kann ich schon machen, man müsste dazu aber mal ein bischen UML zeichnen und ein paar Zeilen schreiben. Kannst du vielleicht deine Problematik etwas näher erläutern? Das ist IMHO insofern wichtig, als dass die Definition des Regelsatzes dann komplexer oder weniger komplex ausfällt.
__________________
Viele Grüße,
Dr.E.

~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
1. Think about software design before you start to write code!
2. Discuss and review it together with experts!
3. Choose good tools (-> Adventure PHP Framework (APF))!
4. Write clean and reusable software only!
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
dr.e. ist offline   Mit Zitat antworten
Alt 03.07.2009, 22:30  
moderatives Dielektrikum
 
Benutzerbild von nikosch
 
Registriert seit: 21.05.2008
Beiträge: 35.994
PHP-Kenntnisse:
Fortgeschritten
nikosch hat eine strahlende Zukunftnikosch hat eine strahlende Zukunftnikosch hat eine strahlende Zukunftnikosch hat eine strahlende Zukunftnikosch hat eine strahlende Zukunftnikosch hat eine strahlende Zukunftnikosch hat eine strahlende Zukunftnikosch hat eine strahlende Zukunftnikosch hat eine strahlende Zukunftnikosch hat eine strahlende Zukunftnikosch hat eine strahlende Zukunft
Standard

Naja, ich möchte dem TE jetzt nicht den Thread streitig machen. Kurz gesagt gehts bei mir darum, einem Datensatz freie Assoziationen zuordnen zu können, die sich auf konkrete Relationen abbilden lassen.
Ein besonderes Problem habe ich dabei, dass ich mehrere dieser Assoziationen gerne mit Operatoren verknüpfen würde.
__________________
--
One pixel is still too big. Please make it smaller. ASAP.

Initiative Mittelstand.
Die wichtigste Gestaltungsregel im Screendesign ist Pi mal Daumen des Arbeitgebers.
--
nikosch ist gerade online   Mit Zitat antworten
Alt 03.07.2009, 22:53  
Benutzer
 
Registriert seit: 03.07.2009
Beiträge: 58
PHP-Kenntnisse:
Fortgeschritten
Thalo befindet sich auf einem aufstrebenden Ast
Standard

Hi Doc,


Zitat:
Zitat:
Pizza "Viva la summer" kann nur bestellt werden, wenn mindestens 40° Durchschnittstemperatur in Deutschland herrschen.
Die Information "Durchschnittstemperatur" ist zunächst schwierig zu ermitteln, der "echte" Anwendungsfall dafür kann IMHO "das Produkt ist verfügbar zwischen 01.03. und 15.05." heißen. Die Regel würde also auf die Sichbarkeit des Produktes Einfluss nehmen. Aus diesem Grund muss dein Produkt Objekt-technisch ein Attribut "visibility" mitbringen. Über dieses kannst du dann bei der Selektion eine Einschränkung treffen.
Eben genau dies hatte ich versucht zu vermeiden. Ich wollte mich auf nicht auf ein bestimmten Datumsbereich beschränken, sondern auf Gegebenheiten. Wie z.B , dass mindestens 40° herrschen müssen um die Pizza zu bestellen.

Ich hatte gedacht, sobald die Pizza mit einer Regel assoziiert ist, ist sie temporär. Aber das lässt sich in der Praxis wohl nicht so sagen?


Zitat:
Um zu definieren, wie eine solche Logik auszusehen hat, müsste ich nochmal in mich gehen. Hier ist aber vor allem dein Input hinsichtlich der erwarteten Komplexität notwendig.
Die Regel sollte alle möglichen Einschränkungen für jeweilige Pizza treffen. Ich möchte ungern weitere Attribute mit der Pizza assoziieren wie das "Mindestalter" oder "Land"...
Thalo ist offline   Mit Zitat antworten
Antwort


Themen-Optionen
Thema bewerten
Thema bewerten:

Forumregeln
Es ist dir nicht erlaubt, neue Themen zu verfassen.
Es ist dir nicht erlaubt, auf Beiträge zu antworten.
Es ist dir nicht erlaubt, Anhänge hochzuladen.
Es ist dir nicht erlaubt, deine Beiträge zu bearbeiten.

BB-Code ist an.
Smileys sind an.
[IMG] Code ist an.
HTML-Code ist aus.
Trackbacks are an
Pingbacks are an
Refbacks are an
Gehe zu

Ähnliche Themen
Thema Autor Forum Antworten Letzter Beitrag
[Erledigt] Im- / Export einer MySQL Datenbank amaier161 Datenbanken 5 19.07.2009 00:42
Eintragung in Datenbank floh77 Datenbanken 2 12.06.2009 18:42
Sql Datenbank durchsuchen und vergleichen Teambyte PHP Tipps 2006 5 14.09.2006 11:11
Verbindung zu einer Datenbank im LAN Datenbanken 11 25.09.2005 12:18
Mehrere Anwendungen eine Datenbank... Datenbanken 5 15.08.2005 11:22
mysql datenbank anlegen...aber WIE??? Datenbanken 0 05.08.2005 19:33
[Erledigt] mysql datenbank anlegen...aber WIE??? PHP Tipps 2005-2 0 05.08.2005 19:33
mysql datenbank anlegen...aber WIE??? Datenbanken 0 05.08.2005 19:32
mysql datenbank anlegen...aber WIE??? Datenbanken 0 05.08.2005 19:31
[Erledigt] mysql datenbank anlegen...aber WIE??? Datenbanken 0 05.08.2005 19:31
[Erledigt] mysql datenbank anlegen...aber WIE??? Datenbanken 0 05.08.2005 19:29
mysql datenbank anlegen...aber WIE??? Datenbanken 0 05.08.2005 19:29
Eintrag in Datenbank mittels Formular? Datenbanken 5 16.12.2004 17:36
[Erledigt] Was ist sinnvoller (Frage zu Datenbank Logik oder so) PHP Tipps 2004 5 27.08.2004 12:08
[Erledigt] Formulardaten sammeln, und in Datenbank verteilen. PHP Tipps 2004 1 14.08.2004 20:35

Besucher kamen über folgende Suchanfragen bei Google auf diese Seite
durchschnittstemperaturen deutschland tabelle, business logik datenbank, business logic datenbank, business logik, durchschnittstemperatur deutschland tabelle, logik in datenbank, datenbank business logic, business-logik, business logik in der datenbank, business logik in datenbank, businesslogik datenbank, business logic def, logik datenbank, datenbank business logik, business logik sql, logik in der datenbank, datenbanken businesslogik, businesslogik, businesslogik datenbank empfehlung, datenbank mit businesslogic

Alle Zeitangaben in WEZ +2. Es ist jetzt 00:34 Uhr.




Powered by vBulletin® Version 3.7.2 (Deutsch)
Copyright ©2000 - 2012, Jelsoft Enterprises Ltd.
Search Engine Optimization by vBSEO 3.2.0
Aprilia-Forum, Aquaristik-Forum, Liebeskummer-Forum, Zierfisch-Forum, Geizkragen-Forum