php.de

Zurück   php.de > Webentwicklung > Datenbanken

Datenbanken SQL und Co

Antwort
 
LinkBack Themen-Optionen Thema bewerten
Alt 31.01.2012, 19:20  
Benutzer
 
Registriert seit: 15.06.2011
Beiträge: 97
PHP-Kenntnisse:
Anfänger
Ralf-2011 befindet sich auf einem aufstrebenden Ast
Standard [Erledigt] Datenbankstruktur

Hallo,

habe eien Frage zur Datenbankstruktur. (siehe Anhang)

zur Struktur gibt´s folgendes zusagen:

Wir sind dabei ein Versicherungen bei uns zulisten. Da gibt es verschiedene Anbieter, Kategorien und Varianten.

Varianten können folgende sein.

Versicherung A: USA/nicht USA
Versicherung B: ohne Selbstbehalt/mit Selbstbehalt
Versicherung C: Abbruch + Selbstbehalt/ Abbruch ohne Selbstbehalt

In der Der Datenbanktabelle habe ich folgende Felder


tUSA = 1 oder 0
tAbbruch_mit_SB = 1 oder 0
tSB_mit = 1 oder 0
tAlter_ab = dürfte klar sein
tAlter_bis = dürfte klar sein
tDauer_von = dürfte klar sein
tDauer_bis = dürfte klar sein
tPerson = Enzel/Familie
tReisepreis = dürfte klar sein
tPreis = dürfte klar sein
vID = Versichungsanbieter
vkID = Versicherungart

Ein Eintrag in die Tabelle würde dann eben so aussehen

0 | 1 | 0 | 25 | 50 | 5 | 20 | Einzel | 1000 | 10 | 1 | 1

Kann man das so handhaben (abgesehen von den Spaltennamen)? Wäre für Meinungen7Anregungen sehr dankbar.
Miniaturansicht angehängter Grafiken
erledigt-datenbankstruktur-unbenannt.png  
__________________
Liebe Grüße R.
Ralf-2011 ist offline   Mit Zitat antworten
Sponsor Mitteilung
PHP Code Flüsterer

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

Alt 31.01.2012, 19:24  
moderatives Dielektrikum
 
Benutzerbild von nikosch
 
Registriert seit: 21.05.2008
Beiträge: 35.879
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

Meinungen wozu? Wir kennen den Einsatzzweck doch gar nicht. Kann man so machen, ja. Aber auch anders. Und ob das sinnvoll ist, bestimmt die Anforderung.
__________________
--
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 31.01.2012, 19:31  
Benutzer
 
Registriert seit: 15.06.2011
Beiträge: 97
PHP-Kenntnisse:
Anfänger
Ralf-2011 befindet sich auf einem aufstrebenden Ast
Standard

Oh vergessen :/

Soll 1 mal zur einen Ausgabe der Verschiednen Tarife sein und zum anderen soll es dann ein Formular geben wo der Nutzer seine Daten eingibt und es ihm dann alle zutreffenden varianten ausgibt und er wählen kann welche er nimmt so das er nicht in der riesigen Tabelle schauen muss.
__________________
Liebe Grüße R.
Ralf-2011 ist offline   Mit Zitat antworten
Alt 01.02.2012, 12:22  
Benutzer
 
Registriert seit: 15.06.2011
Beiträge: 97
PHP-Kenntnisse:
Anfänger
Ralf-2011 befindet sich auf einem aufstrebenden Ast
Standard

So natürlich gibt´s schon das erste Problem:

Und zwar in der DB stehen ja die Reisepreise also wie zum Beispiel

DS1: 100
DS2: 200

Wenn man nun im Formular sagen wir 85 eingibt gibt er beide DS aus weil in der WHERE-Klausel preis >= 85 steht.

Ich habe nun einfach ein zweite Spalte der Tabelle hinzugefügt, nun sieht das ganze so aus.

DS1: 0 | 100
DS2: 101 | 200

WHERE-Klausel:

PHP-Code:
WHERE tReisepreis_bis >= ".mysql_real_escape_string($_POST['reise_preis'])." 
AND tReisepreis_von <= ".mysql_real_escape_string($_POST['reise_preis'])." 
Dies führt jetzt aber zu Problemen wenn der eingegebene Preis den höchsten Wert einen Datensatzen übertrifft. Also höchster Reisepreis(+) 10.000 Wenn man jetzt abfragt kommt nichts.

Meine Frage ist jetzt kann man das nicht auch nur mit einer Spalte lösen ohne "preis von/bis" anzulegen? Oder ist das ok so mit den 2. Spalten und ich brauche die WHERE-Klausel im PHP zusammen.

Also wenn Preis über 10.000 dann eben so

PHP-Code:
if($_POST['preis'] <=10000)
{
$abfrage "....";
}
else
{
$abfrage "...";
}

...
WHERE $abfrage"; 
Meinungen/Anregungen sind wieder gern gesehen
__________________
Liebe Grüße R.
Ralf-2011 ist offline   Mit Zitat antworten
Alt 01.02.2012, 12:42  
Erfahrener Benutzer
 
Registriert seit: 13.01.2012
Beiträge: 241
PHP-Kenntnisse:
Anfänger
akretschmer befindet sich auf einem aufstrebenden Ast
Standard

Zitat:
Zitat von Ralf-2011 Beitrag anzeigen
So natürlich gibt´s schon das erste Problem:

Und zwar in der DB stehen ja die Reisepreise also wie zum Beispiel

DS1: 100
DS2: 200

Wenn man nun im Formular sagen wir 85 eingibt gibt er beide DS aus weil in der WHERE-Klausel preis >= 85 steht.

Ich habe nun einfach ein zweite Spalte der Tabelle hinzugefügt, nun sieht das ganze so aus.

DS1: 0 | 100
DS2: 101 | 200

WHERE-Klausel:

PHP-Code:
WHERE tReisepreis_bis >= ".mysql_real_escape_string($_POST['reise_preis'])." 
AND tReisepreis_von <= ".mysql_real_escape_string($_POST['reise_preis'])." 
Dies führt jetzt aber zu Problemen wenn der eingegebene Preis den höchsten Wert einen Datensatzen übertrifft. Also höchster Reisepreis(+) 10.000 Wenn man jetzt abfragt kommt nichts.

Meine Frage ist jetzt kann man das nicht auch nur mit einer Spalte lösen ohne "preis von/bis" anzulegen? Oder ist das ok so mit den 2. Spalten und ich brauche die WHERE-Klausel im PHP zusammen.

Also wenn Preis über 10.000 dann eben so

PHP-Code:
if($_POST['preis'] <=10000)
{
$abfrage "....";
}
else
{
$abfrage "...";
}

...
WHERE $abfrage"; 
Meinungen/Anregungen sind wieder gern gesehen
Du könntest coalesce verwenden:

Code:
test=*# select * from preise;
  p
-----
  10
  20
 100
(3 rows)

Time: 0,244 ms
test=*# select coalesce((select p from preise where p >= 85),(select max(p) from preise));
 coalesce
----------
      100
(1 row)

Time: 0,380 ms
test=*# select coalesce((select p from preise where p >= 185),(select max(p) from preise));
 coalesce
----------
      100
(1 row)

Time: 0,385 ms
Andreas
akretschmer ist offline   Mit Zitat antworten
Alt 01.02.2012, 16:28  
moderatives Dielektrikum
 
Benutzerbild von nikosch
 
Registriert seit: 21.05.2008
Beiträge: 35.879
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:
AND tReisepreis_von <= ".mysql_real_escape_string($_POST['reise_preis'])."
Bitte beachten: real_escape bietet keinerlei Sicherheit in SQL-Fragmenten, die nicht als String ausgezeichnet sind.
__________________
--
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 02.02.2012, 08:09  
Benutzer
 
Registriert seit: 15.06.2011
Beiträge: 97
PHP-Kenntnisse:
Anfänger
Ralf-2011 befindet sich auf einem aufstrebenden Ast
Standard

Zitat:
Zitat von nikosch Beitrag anzeigen
Bitte beachten: real_escape bietet keinerlei Sicherheit in SQL-Fragmenten, die nicht als String ausgezeichnet sind.
PHP-Code:
mysql_real_escape_string((int)$_POST['irgendwas']) 
oder so
PHP-Code:
mysql_real_escape_string(intval($_POST['irgendwas'])) 
PHP-Code:
mysql_real_escape_string(is_numeric($_POST['irgendwas'])) 
Dachte eher ansowas bzw sieht man das doch oft hier und in anderen foren. natürlich wird auch vorher geprüft ob es korrekt eingegeben wurde
__________________
Liebe Grüße R.

Geändert von Ralf-2011 (02.02.2012 um 08:24 Uhr).
Ralf-2011 ist offline   Mit Zitat antworten
Alt 03.02.2012, 21:32  
moderatives Dielektrikum
 
Benutzerbild von nikosch
 
Registriert seit: 21.05.2008
Beiträge: 35.879
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

Alle drei Varianten sind Unsinn. Die letzte ist dabei besonders sinnbefreit -> siehe is_numeric, Returnwert.
__________________
--
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 03.02.2012, 21:59  
Erfahrener Benutzer
 
Registriert seit: 08.10.2009
Beiträge: 679
PHP-Kenntnisse:
Anfänger
Harry_X befindet sich auf einem aufstrebenden Ast
Standard

Zitat:
Zitat von Ralf-2011 Beitrag anzeigen
So natürlich gibt´s schon das erste Problem:

Und zwar in der DB stehen ja die Reisepreise also wie zum Beispiel

DS1: 100
DS2: 200

Wenn man nun im Formular sagen wir 85 eingibt gibt er beide DS aus weil in der WHERE-Klausel preis >= 85 steht.

Ich habe nun einfach ein zweite Spalte der Tabelle hinzugefügt, nun sieht das ganze so aus.

DS1: 0 | 100
DS2: 101 | 200

WHERE-Klausel:

PHP-Code:
WHERE tReisepreis_bis >= ".mysql_real_escape_string($_POST['reise_preis'])." 
AND tReisepreis_von <= ".mysql_real_escape_string($_POST['reise_preis'])." 
hä? der benutzer übergibt einen von/bis -Wert und dann soll man raten, ob das der untere oder obere Wert sein soll?
Harry_X ist offline   Mit Zitat antworten
Alt 03.02.2012, 22:07  
moderatives Dielektrikum
 
Benutzerbild von nikosch
 
Registriert seit: 21.05.2008
Beiträge: 35.879
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 stimmt schon so. Ist sozusagen die Preisvorstellung. Man könnte allerdings überlegen, ob es billiger nicht immer sein darf.
Und die Frage ist eher, warum steht in der DB ein von-bis-Preis, kein _ Preis _ ? Welche Reise kostet denn von-bis?
__________________
--
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
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
Datenbankstruktur für ein bestimmtes "Problem" gesucht. EuerAbi Datenbanken 5 28.01.2012 20:57
datenbankstruktur für mehrsprachige inhalte phpbeginner Datenbanken 7 26.05.2008 11:57
Denkanschub: Datenbankstruktur ecomeback Datenbanken 3 27.03.2008 20:47
Datenbankstruktur / Logik für PHP-Menü Patrick Schwarz PHP Tipps 2007 6 15.07.2007 17:47
Datenbankstruktur mithilfe von PHP Code herausfinden Datenbanken 4 28.09.2006 19:27
Datenbankstruktur tinchen Datenbanken 6 22.05.2006 22:34
Probleme beim Ändern der Datenbankstruktur Datenbanken 3 21.02.2006 16:02
navigation erstellen - mysql - datenbankstruktur ändern Bonaparte PHP Tipps 2006 23 14.01.2006 20:38
Denkansatz für eine Datenbankstruktur Datenbanken 3 03.11.2005 20:27
[Erledigt] Datenbankstruktur gesucht Datenbanken 1 30.10.2005 21:07
[Erledigt] Datenbankstruktur Datenbanken 1 07.10.2005 17:42
[Erledigt] Brauche Hilfe bei der Datenbankstruktur Datenbanken 6 27.01.2005 12:42

Besucher kamen über folgende Suchanfragen bei Google auf diese Seite
datenbankstruktur

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