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 16.06.2010, 11:00  
Erfahrener Benutzer
 
Registriert seit: 12.05.2005
Beiträge: 1.038
PHP-Kenntnisse:
Fortgeschritten
notyyy befindet sich auf einem aufstrebenden Ast
Standard Datenbankstruktur für kleines flexibles CMS

Hallo,

ich habe häufig Projekte welche ein backend benötigen, jedoch so flexibel sein müssen, dass ich kaum ein fertiges CMS verwenden kann. So habe ich mich beim letzten größeren Projekt ran gemacht und eine eigene nette Datenstruktur entwickelt.

Das System ist dafür ausgelegt XML / JSON Dateien aus zu geben und so Flash oder Javascript zu speisen.

im Grunde ist alles Seitenbasierend, jede Seite hat eine Konfiguration* einen Titel u.s.w..
Seiten sind hierarchisch anderen Seiten über oder untergeordnet.
Auf jeder Seite können beliebig viele Elemente platziert werden, Elemente können einer Gruppe zugeordnet werden, sie können einen Namen beinhalten und eine Konfiguration*. Jedes Element bekommt eine Virtuelle ID, diese ID ist unabhängig von der Sprache.
d.h. ich kann mit Element 500 in Deutsch, Englisch, ... ausgeben lassen. Jedes Element hat zudem ein Fallback Element in der Standardsprache. Unterseiten können als Container definiert werden, diese Seiten tauschen nicht im Menu auf und die Vaterseite hat automatisch auch Zugriff auf den Inhalt dieser Seite. Dies hat den Vorteil, dass unnötiges laden vermieden wird, zudem wird erleichtert Seiten zu unterteilen.

*Konfiguration = JSON String welche von den Frontend-Entwicklern gepflegt werden können

Im Hintergrund werden zum CRUD von Seiten, Elementen, ... nur Prozeduren verwendet.

Dieses System habe ich derzeit erfolgreich im Produktionseinsatz, nun möchte ich das Fallback optimieren und flexibler gestalten.

Problem 1:
- neben Sprachversionen kann es auch Länderversionen geben, unterschiedliche Events, Verfügbarkeiten von Produkten, u.s.w. . Ich überlege derzeit welches verfahren hier am praktikabelsten ist.

Idee:

1. eine Version der Location an zu legen und diese von der Sprachversion erben lassen.

Problemlematik:
Ich müsste irgendwie gewährleisten können, dass man die Vererbungskette irgendwie unterbrechen könnte um evtl. geerbten Kontent nicht an zu zeigen. Das ist in sich zwar inkonsequent wird in der Praxis jedoch immer wieder gefordert.

------------------

Problem 2:
- es könnte Fälle geben in denen Problem1 so nicht zutrifft sondern eine Location in mehreren Sprachen angeboten werden soll, hier müssten in diesem Fall Daten doppelt gepflegt werden.

Idee:
Man könnte die Verwerbungskette umdrehen, so könnte erst vom Kontent und dann von der Sprache geerbt werden.



Habt ihr ähnliche Überlegungen?

Kennt ihr "Datenbank Frameworks" (Sammlung von Prozeduren und Tabellen) die dies Effektiv lösen?
notyyy ist offline   Mit Zitat antworten
Sponsor Mitteilung
PHP Code Flüsterer

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

Alt 16.06.2010, 15:14  
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

Ehrlich gesagt, bin ich ab "Problem 1:" ausgestiegen und weiß nicht, was die Ausführungen sagen sollen. Ich weiß gar nicht, auf welcher Ebene Du beschreibst. Oben steht Datenbank, unten was von Vererbung..
__________________
--
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 16.06.2010, 16:51  
Erfahrener Benutzer
 
Registriert seit: 12.05.2005
Beiträge: 1.038
PHP-Kenntnisse:
Fortgeschritten
notyyy befindet sich auf einem aufstrebenden Ast
Standard

die Grundproblematik ist ganz einfach:

Kunde möchte ein Sprachfallback (Englisch) für die Deutsche Seite,
Nun kommen die Engländer jedoch auf die Idee in der Englischen Version was haben zu wollen, was es in der Deutschen Version nicht geben soll.

Demnach hat dieser kleine Kundenwunsch das Prinzip des kompletten Sprachfallbacks gebrochen.

gibt es einen sauberen Weg diese "Ausnahmen" zu implementieren?, wie geht ihr damit um?
notyyy ist offline   Mit Zitat antworten
Alt 16.06.2010, 17:55  
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

Das Problem besteht doch andersherum, oder? Wenn die Deutsche Seite was hat, was das Fallback nicht hat. Wie auch immer sollte das sinnvollerweise eine Fehlerseite erzeugen.

Ich habe das jüngst ganz trivial gelöst: Umschalten der Sprache wechselt auf die Startseite der Website. Anders ist das IMHO nicht möglich, wenn sich die Websitestrukturen für die Sprachen unterscheiden.
__________________
--
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 17.06.2010, 10:17  
Erfahrener Benutzer
 
Registriert seit: 12.05.2005
Beiträge: 1.038
PHP-Kenntnisse:
Fortgeschritten
notyyy befindet sich auf einem aufstrebenden Ast
Standard

dann kann man ja nicht mehr von einem Fallback reden sondern nur von unterschiedlichen seiten:

"Ein Sprach-Fallback ist dafür da, dass die Seite in ihrer vollständigen Form angezeigt wird und dabei best möglichst übersetzt ist. "

?
notyyy ist offline   Mit Zitat antworten
Alt 17.06.2010, 12:42  
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

Sowas erreichst du IMHO durch Abstraktion einer Seite in eigentliche Seite und deren Inhalte. Der Inhalt ist zur Seite und zu einer Sprache in Beziehung. Dadurch kannst du beliebige Fallback-Szenarien schaffen und bleibst dabei flexibel.
__________________
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 17.06.2010, 13:05  
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

Zitat:
dann kann man ja nicht mehr von einem Fallback reden sondern nur von unterschiedlichen seiten:
naja, aber Du redest doch selbst davon:
Zitat:
- neben Sprachversionen kann es auch Länderversionen geben, unterschiedliche Events, Verfügbarkeiten von Produkten, u.s.w. . Ich überlege derzeit welches verfahren hier am praktikabelsten ist.
__________________
--
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 17.06.2010, 13:10  
Erfahrener Benutzer
 
Registriert seit: 12.05.2005
Beiträge: 1.038
PHP-Kenntnisse:
Fortgeschritten
notyyy befindet sich auf einem aufstrebenden Ast
Standard

@nikosch,
das ist ja das Problem, die Anforderungen decken sich nicht mit meiner "lösung"

@dr.e.
das hört sich sehr interessant an, ich würde ich freuen wenn du etwas weiter ausholen könntest
notyyy ist offline   Mit Zitat antworten
Alt 17.06.2010, 15:39  
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

Hallo notyyy,

da gibt es nicht mehr viel dazu zu sagen. Du baust folgende Beziehung zu den genannten Objekten auf:

Page <-> PageContent <-> Language

Anschließend kannst du eine Seite per URL (id oder auch einen anderen URL-Identifier) adressieren, entscheiden, welche Sprache ausgewählt ist (beispielsweise auch über die URL, die Session, ...) und dann den zugehörigen Inhalt laden. Sofern der nicht vorhanden ist, einfach den nächstbesten oder wahlweise auch einfach einen englischen, ... That's it.

Nachtrag:
Bei Inhalten (z.B. Artikel, News, ...) kannst du genauso vorgehen. Dann ist das Umschalten einer Sprache oder auch ein Fallback für Inhalte ein Kinderspiel.
__________________
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 17.06.2010, 19:38  
Erfahrener Benutzer
 
Benutzerbild von litterauspirna
 
Registriert seit: 24.04.2008
Beiträge: 3.172
PHP-Kenntnisse:
Anfänger
litterauspirna sorgt für eine eindrucksvolle Atmosphärelitterauspirna sorgt für eine eindrucksvolle Atmosphäre
litterauspirna eine Nachricht über ICQ schicken
Standard

Zitat:
Zitat von dr.e. Beitrag anzeigen
Hallo notyyy,

da gibt es nicht mehr viel dazu zu sagen. Du baust folgende Beziehung zu den genannten Objekten auf:

Page <-> PageContent <-> Language
Ich hoffe ich trete dir jetzt nicht vors Schienbein oder so, aber wäre es nicht sorum richtiger?

Page <-> Language <-> PageContent

Die angeforderte Page wird geladen (wie auch immer) dann wird ausgelesen in welcher Sprache der Pagecontent geladen bzw. angezeigt werden soll und erst dann wird der PageContent ausgegeben?

Korrigier mich bitte wenn ich da falsch liege, aber das würde mir so von der Logik allein her richtiger erscheinen, weil die Reihenfolge aus deinem Post sagt ja lade angeforderte Page, gib Page Content aus und lade dann die Sprache.

Oder habe ich mich nur von der linearen Darstellung irre führen lassen?
__________________
Aus dem Dynamo Lande kommen wir. Trinken immer reichlich kühles Bier. Und dann sind wir alle voll, die Stimmung ist so toll. Aus dem Dynamo Lande kommen wir.
http://www.lit-web.de
litterauspirna 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
Scriptangebot Yunio CMS MiST3R-FL4SH Scriptbörse 17 29.05.2010 00:46
[Erledigt] verständnisfrage CMS d0ne Off-Topic Diskussionen 4 25.05.2010 06:44
CMS bzw Board einbauen? gombi Scriptbörse 12 28.04.2010 15:44
kleines CMS mit Framework schreiben ghost120 Software-Design 6 26.03.2010 23:50
Was braucht ein gutes CMS Lollix Off-Topic Diskussionen 33 03.03.2010 17:51
Gesucht: PHP/Java/XHTML Programmierer zur Erweiterung von Webshop & CMS idnr13 Beruflich 0 09.02.2010 16:52
Login Script / CMS bikone PHP Tipps 2009 14 31.10.2009 23:33
Scriptsuche [Erledigt] Suche CMS für Clan / Community dontworry Scriptbörse 11 26.10.2009 20:07
Was muss ein gutes CMS können? beckerCodes Software-Design 33 14.09.2009 11:44
Eigenes CMS Moep PHP Tipps 2009 12 06.08.2009 23:00
Open Source CMS: wer macht mit? chris14465 Beitragsarchiv 6 24.06.2009 17:02
Dreamproject [S] CMS evtl. Feststellangebot vnBiT.sys Beitragsarchiv 4 25.04.2009 10:51
Modulares CMS programmieren NikB PHP-Fortgeschrittene 7 14.04.2009 22:41
[S] erfahrene Coder für eigenes CMS DarkSky25 Beitragsarchiv 14 31.03.2009 12:06
CMS mit Framework KeKs0r PHP-Fortgeschrittene 11 27.12.2008 23:03

Besucher kamen über folgende Suchanfragen bei Google auf diese Seite
cms datenbankstruktur, datenbankstruktur cms, flexibles cms, cms datenbank struktur, cms datenbankaufbau, cms datenbank aufbau, datenbank struktur cms, kleines cms ohne datenbank, flexibles cms / deutschsprachig, gutes flexibles cms, cms eigene datenbank struktur, datenbankstruktur content management system, kleines flexibles cms, kleines und flexibles cms, datenbankstruktur eines cms, json datenbank struktur, kleines, flexibles cms, datenbankaufbau webshop, struktur cms, datenbankaufbau content management system

Alle Zeitangaben in WEZ +2. Es ist jetzt 00:39 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