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 06.02.2012, 19:50  
Neuer Benutzer
 
Registriert seit: 21.02.2009
Beiträge: 28
hawkeye78 befindet sich auf einem aufstrebenden Ast
Standard Abfrage einer Datenbank für eine Vorschlagsliste

Hallo,

ich bastele gerade an einer Musik-Datenbank und hänge nun etwas an der Eingabemaske für neue Alben. Ich habe mir dabei überlegt für den Künstler nur ein Textfeld zur Verfügung zu stellen und die Tabelle zu durchsuchen ob einen Künstler gibt der zu diesem Suchmuster passt und diesen dann wie bei google in einer Vorschlagsliste dem Benutzer als Auswahl vorzuschlagen.
Falls der Benutzer keine Auswahl trifft, wird ein neuer Datensatz mit dem neuen Künstler angelegt. Nun liegen die Felder in der Datenbanktabelle gemäß der 1. Normalform in 2 Felder (für Vor- und Nachname) vor. Damit ergibt sich allerdings ein kleines Problem wie Frage ich jetzt am besten die Daten ab? Ich habe mir bis jetzt 3 Möglichkeiten überlegt

1. Option
Ich lege einen Index über die Felder Vor- und Nachname und lass die MySQL eigene Volltextsuche darauf los

2. Option
Ich baue eine Abfrage die jede Eingabe (separiert durch ein leerzeichen) auf jedes Feld loslasse. Also so etwas wie
SELECT * FROM Artist WHERE Vorname=Mark OR Nachname=Mark OR Vorname=Knopfler OR Nachname=Knopfler

3. Option
Ich baue eine View die Vor und Nachnamen zusammenklebt und ich frage dann direkt mit dem Eingabestring ab ob es dazu was passendes gibt.

Nun bin ich allerdings etwas unsicher welche Option davon am besten für mein Problem geeignet ist. Ich persönlich tendiere im moment zur dritten Option, allerdings würde ich dazu gerne noch die eine oder andere Meinung hier im Forum hören.
Ich hoffe nun einfach mal das ich mit der Frage im richtigen Unterforum gelandet bin und würde mich über die eine oder andere Antwort sehr freuen.
Viele Grüße
Dan


PS
Falls ich hier falsch bin, hoffe ich einfach mal das ich nicht zuviele Umstände gemacht habe und einer der Moderatoren meinen Beitrag entsprechend verschiebt.


PPS
Eine vierte Alternative wäre noch das Suchfeld über Bord zu werfen und eine Dropdownliste zu bauen . Allerdings stellt sich dann die Frage wie erfasse ich neue Künstler ohne die Eingabemaske zu verlassen?
hawkeye78 ist offline   Mit Zitat antworten
Sponsor Mitteilung
PHP Code Flüsterer

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

Alt 06.02.2012, 19:59  
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

Die technisch einfachste Lösung ist ein Drop-Down mit einem Add-Button daneben, in dem der Benutzer in einem Layer einen neuen Künstler eingeben kann. Ansprechender ist sicher die textuelle Eingabe mit Suggestion-Feature. Hierzu kannst du dir neben dem Vor- und Nachnamen in deiner Tabelle auch einen Anzeige-Namen (Vor- und Nachname zusammen) als Suchindex aufbauen. Nachteil hierbei ist natürlich die parallele Pflege. Diese könntest du jedoch durch einen ON UPDATE-Trigger für den Entwickler transparent erledigen.
__________________
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 06.02.2012, 20:30  
Neuer Benutzer
 
Registriert seit: 21.02.2009
Beiträge: 28
hawkeye78 befindet sich auf einem aufstrebenden Ast
Standard

Stimmt so ein Switch wo man dann von Dropdownliste in ein Eingabefeld umschaltet wäre auch noch eine Idee. Ich sehe bei der von mir angedachten Lösung im moment auch das Problem das ich dann eine Logik brauche wo der Nachname anfängt und der Vorname aufhört. Alternative wurde mir gerade von einem guten Bekannten noch diese Library[1] (oder wie man das bezeichnen mag) zugetragen.
Mit anderen Worten alternativen wie man das umsetzt scheint es genug zu geben, die frage ist jetzt bloß welche nimmt man?
hawkeye78 ist offline   Mit Zitat antworten
Alt 06.02.2012, 20:36  
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:
Zitat von hawkeye78 Beitrag anzeigen
Nun liegen die Felder in der Datenbanktabelle gemäß der 1. Normalform in 2 Felder (für Vor- und Nachname) vor.
Ähm, what for? Willst Du da

P | Diddy | …

eintragen oder wie? Und ist Nena jetzt der Vor- oder Nachname? Falco? Was zur Hölle ist ein Xzibit?
__________________
--
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 offline   Mit Zitat antworten
Alt 06.02.2012, 20:39  
Neuer Benutzer
 
Registriert seit: 21.02.2009
Beiträge: 28
hawkeye78 befindet sich auf einem aufstrebenden Ast
Standard

Nein ich benutze das Feld für den Nachnamen auch gleich als Gruppenname und das Feld für den Vornamen als Feld für den Artikel... solche Kandidaten wie xzbit, Nena und P. Diddy würden bei mir alle uter Nachnamen stehen vor allem weil es für mich so auch später einfacher möglich ist anhand des Anfangs buchstaben die Alben aufzulisten. Was zugegebener maßen zu der Frage führen kann ob man nun Elton John unter E oder oder unter J wiederfinden möchte....
hawkeye78 ist offline   Mit Zitat antworten
Alt 06.02.2012, 20:48  
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

Es macht schlichtweg keinen Sinn.

Al Bano und Romina Power,
The The,
Marilyn Manson,
Nicole, Robyn, Madonna…
Phillip Boa / Phillip Boa & The Voodooclub

das kriegst Du doch alles nicht sinnvoll eingeordnet.
__________________
--
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 offline   Mit Zitat antworten
Alt 06.02.2012, 21:43  
fab
Erfahrener Benutzer
 
Benutzerbild von fab
 
Registriert seit: 28.07.2010
Beiträge: 2.308
PHP-Kenntnisse:
Fortgeschritten
fab ist ein Lichtblickfab ist ein Lichtblickfab ist ein Lichtblickfab ist ein Lichtblickfab ist ein Lichtblick
Standard

Zitat:
Zitat von hawkeye78 Beitrag anzeigen
Nein ich benutze das Feld für den Nachnamen auch gleich als Gruppenname und das Feld für den Vornamen als Feld für den Artikel... solche Kandidaten wie xzbit, Nena und P. Diddy würden bei mir alle uter Nachnamen stehen vor allem weil es für mich so auch später einfacher möglich ist anhand des Anfangs buchstaben die Alben aufzulisten. Was zugegebener maßen zu der Frage führen kann ob man nun Elton John unter E oder oder unter J wiederfinden möchte....
Schau dir mal an, wie das MP3 Tagger handhaben. Beispiel:
Code:
albumartist     : Elton John
composer        : Elton John
albumartistsort : John, Elton
albumartistsort ist dann auch für Varianten wie "Doors, The" zuständig. Wenn du unbedingt eine Personen-Datenbank anschließen willst, dann macht die nur bei Feldern wie "composer" und "producer" Sinn.
fab 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] Datenbank abfrage nur aktuell Woche,nur vergangene woche Eisenbahner PHP Einsteiger 19 31.03.2011 22:16
Datenbank Abfrage einer Spalte MotteHH Datenbanken 9 12.01.2011 20:04
[Erledigt] Abfrage eines voher festgelegeten Objektes in einer Datenbank marckannisgut PHP Tipps 2010 21 06.11.2010 17:03
Datenbank Abfrage läuft sich tot :( dasdingo Datenbanken 9 22.02.2010 17:03
Eine Ajax Abfrage funktioniert nicht mit verlinkter Datenbank Information da.eXecutoR PHP Tipps 2009 23 21.11.2009 17:56
[Erledigt] Daten von Datenbank NACH der Abfrage sortieren Supeede PHP Tipps 2009 21 10.04.2009 00:33
datenbank abfrage mit php xstefxanx PHP Tipps 2009 11 04.04.2009 18:33
[Erledigt] Datenbank abfrage geordnet anzeigen Octavian PHP Tipps 2009 10 22.03.2009 15:39
[Erledigt] Formular Problem (Datenbank Abfrage) halekin PHP Tipps 2009 2 14.01.2009 12:45
Datenbank Frage (Abfrage) 22hase Datenbanken 24 16.12.2008 15:32
Zufallsbild -> Abfrage MySQL Datenbank nic_ Datenbanken 4 24.11.2008 12:43
access datenbank abfrage georg099 Datenbanken 4 02.09.2008 08:27
OOP - Datenbank Abfrage ... 7Style PHP Tipps 2008 5 13.02.2008 13:28

Besucher kamen über folgende Suchanfragen bei Google auf diese Seite
php script musikdatenbank, abfrage einer musikdatenbank, textfeld mit vorschlägen aus ajax abfrage zum auswählen, access vorschlagsliste, access vorschlagsliste google, musik datenbank mit php-script abfragen, vorschlagsliste datenbank, vorname romina skype deutsch

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