php.de

Zurück   php.de > Webentwicklung > Datenbanken

Datenbanken SQL und Co

Antwort
 
LinkBack Themen-Optionen Thema bewerten
Alt 14.08.2011, 14:24  
Erfahrener Benutzer
 
Benutzerbild von dreamcatcher
 
Registriert seit: 28.12.2010
Beiträge: 596
PHP-Kenntnisse:
Anfänger
dreamcatcher wird schon bald berühmt werden
Standard [MySQL] Alle Standardwerte automatisch NULL(true/false) setzen ?

Eine Frage die ich mir öfters gestellt habe ist, ob es einen Sinn ergibt, bei MySQL Spalten die Eigenschaft "Null" standartmäßig auf "true" zu setzen.

Navicat stellt dies z.B. automatisch ein, soweit man keine andere Angabe macht.
PHPMyAdmin hingegen setzt es automatisch auf false.

Rein von der Logik würde ich sagen, dass man es nur auf true setzt, wenn man damit rechnet, dass in der Spalte kein Wert eingetragen wird.
Andererseits, wenn man es per default auf Null(true) setzt, erhält der User wahrscheinlich keine Fehlermeldung wenn er vergisst das Feld eines Formulares auszufüllen und die Überprüfung des Formulars dies nicht entdeckt hat.
Dem Entwickler kann es auch helfen Felder die verpflichtend sind und nicht in der DB ankommen bei der Entwicklung durch NULL(false) zu entdecken.

Meine Fragen :

a.)
Setzt ihr eine Spalte automatisch auf NULL(true) oder NULL(false) ?
b.)
Setzt ihr, wenn das Feld z.B. eine optionale Angabe in einem Formular ist, NULL(true) und wenn es pflicht ist NULL(false) oder setzt ihr immer auf NULL(true), so dass der User z.B. gar keine Errormessages bekommt ?
(Wobei das eigentlich quatsch ist es wg. den Errormessages zu tun, denn die Rechte dafür sollten sowieso in der Software/PHP Config verankert sein)
dreamcatcher ist offline   Mit Zitat antworten
Sponsor Mitteilung
PHP Code Flüsterer

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

Alt 14.08.2011, 14:49  
moderatives Dielektrikum
 
Benutzerbild von nikosch
 
Registriert seit: 21.05.2008
Beiträge: 35.987
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

Also aus Formularsicht würde ich das gar nicht bewerten. Sondern daraus, inwieweit für ein konsistentes/vollständiges Model ein bestimmtes Feld nötig 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 offline   Mit Zitat antworten
Alt 14.08.2011, 15:05  
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 nikosch Beitrag anzeigen
Also aus Formularsicht würde ich das gar nicht bewerten. Sondern daraus, inwieweit für ein konsistentes/vollständiges Model ein bestimmtes Feld nötig ist.
Check. NULL erlaube ich nur, wenn das Feld wirklich den Inhalt "kein Wert/undefiniert" annehmen können soll. Und leere Strings in einem Textfeld sind damit nichtmal zwangsläufig gemeint. Mein "Standard" ist also NOT NULL, wenn du so willst.

Und egal was passiert, der User bekommt keine Fehlermeldungen von der Datenbank, sowas wird abgefangen!
fab ist offline   Mit Zitat antworten
Alt 14.08.2011, 21:42  
moderatives Dielektrikum
 
Benutzerbild von nikosch
 
Registriert seit: 21.05.2008
Beiträge: 35.987
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

NULL repräsentiert oftmals einen zusätzlichen Zustand neben Normal- und Ausnahmewerten. Wenn das nicht ausdrücklich gewünscht ist, sollte man das vermeiden. Defaultwerte sind ja bspw. auch eine Möglichkeit.
__________________
--
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 14.08.2011, 21:48  
Erfahrener Benutzer
 
Registriert seit: 03.08.2010
Beiträge: 1.140
PHP-Kenntnisse:
Anfänger
hausl wird schon bald berühmt werdenhausl wird schon bald berühmt werden
Standard

Zitat:
Zitat von nikosch Beitrag anzeigen
NULL repräsentiert oftmals einen zusätzlichen Zustand neben Normal- und Ausnahmewerten.
zB NULL Ist ja doch auch nötig für "nicht gesetzt" in Nummerischen Feldern, weil ja 0 dann nicht geht, zwecks nicht Unterscheidbarkeit.

LG
__________________
Keine Zahl != ein Zeichen das keine Zahl ist
hausl ist offline   Mit Zitat antworten
Alt 14.08.2011, 21:49  
moderatives Dielektrikum
 
Benutzerbild von nikosch
 
Registriert seit: 21.05.2008
Beiträge: 35.987
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

Kommt drauf an, ob 0 einen Normalzustand repräsentiert. Bspw. in einem Warenkorb ist eine Menge „0“ relativ sinnfrei.
__________________
--
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 14.08.2011, 21:50  
Erfahrener Benutzer
 
Registriert seit: 03.08.2010
Beiträge: 1.140
PHP-Kenntnisse:
Anfänger
hausl wird schon bald berühmt werdenhausl wird schon bald berühmt werden
Standard

zB in einer Fussballtippgemeinschaft.. Ein gültiger Tipp ist 0:0 wenn der Tipp aber noch nicht abgegeben wurde muss das NULL : NULL sein (sind natürlich 2 Felder TippTor1 und TippTor2)
__________________
Keine Zahl != ein Zeichen das keine Zahl ist

Geändert von hausl (14.08.2011 um 21:54 Uhr).
hausl ist offline   Mit Zitat antworten
Alt 14.08.2011, 21:55  
moderatives Dielektrikum
 
Benutzerbild von nikosch
 
Registriert seit: 21.05.2008
Beiträge: 35.987
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

Ich würde eher sagen, ein nicht abgegebener Tipp würde dann durch einen fehlenden Datensatz ausgedrückt werden. Aber das sind halt genau diese Entscheidungen.
__________________
--
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 14.08.2011, 22:04  
Erfahrener Benutzer
 
Registriert seit: 03.08.2010
Beiträge: 1.140
PHP-Kenntnisse:
Anfänger
hausl wird schon bald berühmt werdenhausl wird schon bald berühmt werden
Standard

[OT ]
Ja, das hatte ich "zuerst" auch geplant, dann gab es aber zusätzlich den Fall das der User in seiner Tippliste die bereits abgegebenen Tipps ja bis zum Spielbeginn noch beliebig ändern durfte und somit auch in einem bereits abgegebenen Tipp die Felder wieder "leer machen" .... So und nun war ich auch zu Faul bzw. sah mir den Aufwnad es nicht Wert für solche eine eigene (DELETE) Funktion reinzubauen, daher bekamen die NULL im normalen UPDATE-Druchlauf.
[/OT]

Zitat:
Zitat von nikosch Beitrag anzeigen
Aber das sind halt genau diese Entscheidungen.
Ist vermutlich eh schon Off-Topic und mittlerweile schon Geschichte aber der Volständigkeit halber halt
__________________
Keine Zahl != ein Zeichen das keine Zahl ist

Geändert von hausl (14.08.2011 um 22:23 Uhr).
hausl ist offline   Mit Zitat antworten
Alt 14.08.2011, 22:46  
moderatives Dielektrikum
 
Benutzerbild von nikosch
 
Registriert seit: 21.05.2008
Beiträge: 35.987
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

Daraus können dann halt wieder andere Probleme bestehen. Nehmen wir an, Du hast die Vereine in einer extra Tabelle und willst jetzt mal schauen, welche Tipps für einen bestimmten Verein aktuell bestehen. So machst Du einen LEFT Join vom Verein auf den Tippabgeber und erhältst drei Fälle: Die beiden oben genannten und zusätzlich den Zustand, dass alle Tipp-Daten NULL sind (der klassische Fall LEFT Join auf einen nicht existenten Datensatz). Und schon hast Du drei Fälle zu berücksichtigen
__________________
--
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
[Erledigt] ordner rechte setzen sich automatisch zurück wiegia086 PHP-Fortgeschrittene 1 05.04.2008 13:55
Datum auswählen automatisch Tag setzen andrew22 HTML, Usability und Barrierefreiheit 3 03.09.2007 23:36
Cursorfokus automatisch in ein Input Feld setzen DDogg HTML, Usability und Barrierefreiheit 5 17.05.2006 22:48
radio button automatisch setzen HTML, Usability und Barrierefreiheit 2 11.10.2005 07:12
Bei auslesen von Datenbank automatisch komma setzen PHP Tipps 2005-2 5 14.06.2005 09:41
select feld automatisch als "submit" setzen bei au PHP Tipps 2005-2 10 07.06.2005 08:23
value in input type=file automatisch setzen HTML, Usability und Barrierefreiheit 4 07.08.2004 13:19

Besucher kamen über folgende Suchanfragen bei Google auf diese Seite
mysql standard null, mysql true false, eigenschaft null mysql, mysql wert null setzen, php mysql wenn null standardwert, php default werte mysql, mysql null standard null, mysql formularfeld standardmäßig auf null setzen, spalte null true, mysql defaultwert, php mysql insert nicht alle felder setzen, von arbeitgeber auf null gesetzt, wenn istnull(false), mysql default wert 0 setzen, php egal, ob true oder false, php standard kein, mysql spalte mit standardwert 0, true false mysql, php mysql spalte leer dann false, mysql default wert nullable

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