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 19.08.2010, 16:26  
Erfahrener Benutzer
 
Benutzerbild von Squall
 
Registriert seit: 19.03.2009
Beiträge: 539
PHP-Kenntnisse:
Fortgeschritten
Squall befindet sich auf einem aufstrebenden Ast
Standard

Zitat:
Zitat von fab Beitrag anzeigen
Was wären das denn z.B. für Tabellen? Und in was für Relationen stehen sie zu den Texten, gehört ein Text zu mehreren "irgendwelchen" Tabellen oder nur jeweils einer?
Ein Text gehört immer nur zu einer Tabelle und Tabellen kann es beliebig viele geben.

Zitat:
Zitat von cycap Beitrag anzeigen
Warum muss man in einem CMS nach Content-content (dämlicher Begriff, ich weiss ) suchen? Ich sehe da nicht wirklich viel Sinn drin...
Jetzt bin ich verwirrt? Im Frontend muss doch der Seitenbesucher nach irgendeinen Begriff suchen können. Hier im Forum ist doch auch eine suche integriert.

Geändert von Squall (19.08.2010 um 16:32 Uhr).
Squall ist offline   Mit Zitat antworten
Sponsor Mitteilung
PHP Code Flüsterer

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

Alt 19.08.2010, 16:34  
fab
Erfahrener Benutzer
 
Benutzerbild von fab
 
Registriert seit: 28.07.2010
Beiträge: 1.721
PHP-Kenntnisse:
Fortgeschritten
fab ist einfach richtig nettfab ist einfach richtig nettfab ist einfach richtig nettfab ist einfach richtig nett
Standard

Beliebig viele Tabellen? Wozu?

Gehört ein Text nur zu einem Eintrag in einer Tabelle, kannst du mit einer 1:1 Relation theoretisch leicht vom Text auf den Eintrag kommen. Allerdings müsstest du dazu Vererbung simulieren, ich bleibe dabei: Dein Problem ist das DB-Design bei den Content-Tabellen oder was auch immer - die Frage, was "irgendeine_tabelle" überhaupt sein kann/soll hast du ja leider nicht beantwortet.
fab ist gerade online   Mit Zitat antworten
Alt 19.08.2010, 16:40  
Moderator
 
Benutzerbild von cycap
 
Registriert seit: 13.02.2008
Beiträge: 6.816
PHP-Kenntnisse:
Fortgeschritten
cycap ist einfach richtig nettcycap ist einfach richtig nettcycap ist einfach richtig nettcycap ist einfach richtig nettcycap ist einfach richtig nett
Standard

Zitat:
Jetzt bin ich verwirrt? Im Frontend muss doch der Seitenbesucher nach irgendeinen Begriff suchen können.
Ok vielleicht habe ich mich schlecht ausgedrückt, da ich eher ans Backend dachte.

Anders: durchsucht werden muessen doch nur Texte die auch im Frontend dargestellt werden und wenn du eine Tabelle hast in der die Texte alle enthalten sind in allen Sprachen, dann kannst du darin doch suchen? An welcher Stelle du den eigentlichen Text dann verwendest, das ist doch egal. Angenommen du hast eine Tabelle fuer Produkte und eine fuer News. Wenn nun beide Tabellen keine Texte mehr enthalten sondern auf deine Uebersetzungstabelle referenzieren, dann kannst du doch wunderbar suchen?
cycap ist offline   Mit Zitat antworten
Alt 19.08.2010, 16:58  
Erfahrener Benutzer
 
Benutzerbild von Squall
 
Registriert seit: 19.03.2009
Beiträge: 539
PHP-Kenntnisse:
Fortgeschritten
Squall befindet sich auf einem aufstrebenden Ast
Standard

Ich glaube wir drehen uns im Kreis

Hier mal ein sinnloses aber hoffentlich einfach zu verstehendes Beispiel

Folgende Tabellen:

- Texte für seite 1
- Texte für seite 2
- Texte für seite 3
- Texte für seite 4
- Texte für seite 5
- Texte für seite 6
- Texte für seite 7
- Texte für seite 8
- Texte für seite 9

Auf der Startseite gibt es 9 Links, jeder Link führt zu einer unterseite die sich die inhalte aus ihrer DB-Tabelle holt. Der Link "Seite 1" holt sich die aus "Texte für seite 1", der Link "Seite 2" holt sich die aus "Texte für seite 2" etc.)

Jetzt kann der user noch irgendwie seine sprache wählen und gut ist.

Problem meiner alten Sprachensteuerung lag daran das bei einer suche in der sprachen Tabelle ich zwar ergebnisse hatte diese aber nur mühsam zuordnen konnte da es in der Sprachtabelle keine backlinks gab. Dieses Problem hat sich ja mit dem Besipiel von chorn:

Code:
tables
+-----+---------+
| tid | name    |
+-----+---------+
| int | varchar |
+-----+---------+

fields
+-----+-----+----------+
| fid | tid | name     |
+-----+-----+----------+
| int | int | varchar  |
+-----+-----+----------+

langs
+-----+---------+
| lid | name    |
+-----+---------+
| int | varchar |
+-----+---------+

tables_fields_langs_texts
+-----+-----+-----+-----+---------+
| id  | tid | fid | lid | txt     |
+-----+-----+-----+-----+---------+
| int | int | int | int | varchar |
+-----+-----+-----+-----+---------+
erledigt. Darauß resultiert für mich eben nur noch die Frage, ob sich mit dieser Struktur andere Probleme ergeben oder es noch bessere/andere Lösungen gibt. Wie schon erwähnt bin ich mit Sprachen schon 2 mal auf die Fresse geflogen und würde es daher gerne diesmal vermeiden.
Squall ist offline   Mit Zitat antworten
Alt 19.08.2010, 17:09  
Erfahrener Benutzer
 
Registriert seit: 08.04.2009
Beiträge: 324
Creator befindet sich auf einem aufstrebenden Ast
Standard

Selbst hier stelle ich mir die Suche sehr mühselig vor. Grade wenn du viel Text hast. Was es durchaus ja geben soll, möchte ich dieses nicht mit z.B. Like durchlaufen.
Für die Suche würde ich mir was eigenes Programmieren.
Und zwar in dem du dir einen wirklichen Suchindex erstellst und diesen mit dem Content verbindest. Nur so erreicht man auch verdammt schnell suchergebnisse.
Stell dir mal vor du hast ein Forum mit nur 1000 Beiträgen. Möchtest in deiner Suche aber eine Art Autocompletefunktion mit einbauen. Viel spaß.
Creator ist offline   Mit Zitat antworten
Alt 19.08.2010, 17:20  
Erfahrener Benutzer
 
Benutzerbild von Squall
 
Registriert seit: 19.03.2009
Beiträge: 539
PHP-Kenntnisse:
Fortgeschritten
Squall befindet sich auf einem aufstrebenden Ast
Standard

Hallo Creator, was meinst du mit suchindex? währe das eine seperate tabelle oder ist das eine art der indexierung in mysql-datenbanken?
Squall ist offline   Mit Zitat antworten
Alt 19.08.2010, 17:31  
Erfahrener Benutzer
 
Registriert seit: 08.04.2009
Beiträge: 324
Creator befindet sich auf einem aufstrebenden Ast
Standard

Oh das sind gleich mehrere Tabellen
Ich habe jetzt leider grade kein Beispiel zu hand aber mal kurz das Prinzip wie ich das meine.

Bei der erstellung deines Textes ( Content ) wird der text zerlegt. Du schmeist aus diesem Text alles raus nach was man nicht sucht. z.B. Stopwörter ( der, die, das, er, sie, es usw ).
Diese Listen gibt es fertig im Netz für unterschiedliche Sprachen

Du brauchst daher eine Tabelle für die Stopwörter.
Dann eine Tabelle für denn eigentliche Index.
Und natürlich auch eine Tabelle für die zuordnungen welcher Begriff kommt in welchem Content vor.

Du durchsuchst dann nicht mehr den ganzen Text, sondern nur noch nach einzelenen Begriffen, Wörtern, Namen etc.
In welchem Content der Suchbegriff dann steht ist dann natürlich einfach zu ermitteln.

Diese Art der suche biete auch weitere Möglichkeiten z.B. das ausfiltern von einfachen Tippfehlern bei der sucheingabe. Versuch sowas mal machen wenn du mit Like 1000 Texte durchforstest.

Ich bin grade auf der Arbeit daher kann ich dir jetzt kein genaues Beispiel zeigen. Heute Abend vieleicht noch mal!
Creator ist offline   Mit Zitat antworten
Alt 19.08.2010, 17:58  
Erfahrener Benutzer
 
Registriert seit: 28.09.2008
Beiträge: 1.127
PHP-Kenntnisse:
Fortgeschritten
Koala befindet sich auf einem aufstrebenden Ast
Standard

@cycap
??? warum soll man nicht nach Content suchen können den der Webmaster/Admin auf seinen Seiten anzeigen läßt ?

Nach was denn sonst ?
__________________
Eine if-else-Abfrage nimmt, ordentlich geschrieben eine Menge Platz weg. Platzsparend geht es mit einem ternären Operator.
Koala ist offline   Mit Zitat antworten
Alt 20.08.2010, 08:29  
Moderator
 
Benutzerbild von cycap
 
Registriert seit: 13.02.2008
Beiträge: 6.816
PHP-Kenntnisse:
Fortgeschritten
cycap ist einfach richtig nettcycap ist einfach richtig nettcycap ist einfach richtig nettcycap ist einfach richtig nettcycap ist einfach richtig nett
Standard

@Koala: Wie gesagt, ich dachte dabei ans Backend, habe das ja schon wiederrufen.
cycap ist offline   Mit Zitat antworten
Alt 20.08.2010, 10:38  
Erfahrener Benutzer
 
Registriert seit: 14.01.2010
Beiträge: 124
PHP-Kenntnisse:
Fortgeschritten
phpsecretary kann nur auf Besserung hoffen
Standard

@alle, die dazu mehrere Tabellen anlegen: setzen 6! Ihr könnt froh sein, dass grober Unfug nur noch eine Ordnungswidrigkeit darstellt.

SELECT textfeld FROM tab WHERE lang = $langid AND ...
__________________
Ich bin Programmierer und kein Frameworkinstallierer.
phpsecretary 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
[Suche] Anpassen von CMS an Design kelv Gewerblich 1 27.05.2010 20:33
Design für PHP-Trader CrashStudios Beitragsarchiv 0 27.12.2009 22:17
Design Pattern Harry B. Software-Design 7 02.09.2008 20:49
Design und Code Trennen TeazY PHP Tipps 2008 29 21.05.2008 12:08
Design Beitragsarchiv 26 04.06.2005 20:56
[PHP] Design Schutz für ein Gästebuch I-Spy PHP Tipps 2005 5 01.01.2005 11:25

Besucher kamen über folgende Suchanfragen bei Google auf diese Seite
mehrsprachigkeit software-design

Alle Zeitangaben in WEZ +1. Es ist jetzt 17:41 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