Ik heb hier een voorbeeld van een creatie van een tabel:
Nu heb ik mijn script laten reviewen door een collega, en hij zei me dit:
# It is advised (also mentioned by the MySQL guys) to make ALL fields "NOT NULL".
# a. It makes everything faster and you save one bit per column
# b. It saves checking on "ISNULL" While retrieving data
# c. By having all data "NOT NULL", you can use receiving a "NULL" value before creating a record to indicate error in application
# d. Having all fields "NOT NULL" it is advised to initiate all fields with an "empty" value (= NOT NULL) before creating a record. This can be done automatically to set for all fields the 'default' value to "empty"
Maar nu weet ik niet of dit wel het beste is qua performance.
a: waarom scheelt dit een bit per column?
b: waarom is het checken op ISNULL zo erg? anders moet ik checken op een lege string oid? wat is het verschil?
c: het lijkt me erg gebruikersonvriendelijk om alles NOT NULL te maken. (niet iedereen heeft een fax bijvoorbeeld)
d: Je kan dit natuurlijk vermijden door een DEFAULT waarde in te stellen (zoals lege string of zo), maar het gebruik van DEFAULT en NOT NULL tegelijkertijd is toch overbodig? Als ik een DEFAULT waarde instel, kan het toch nooit NULL zijn

Ik heb het gevoel alsof ik iets heel simpels over het hoofd zie, maar dat zou ik dan graag willen horen
MySQL:
1
2
3
4
5
6
7
8
9
| CREATE TABLE icompany (company_id MEDIUMINT UNSIGNED ZEROFILL AUTO_INCREMENT PRIMARY KEY, company_name CHAR(60) NOT NULL, company_street CHAR(60) NOT NULL, company_city CHAR(24) NOT NULL, company_postcode CHAR(10) NOT NULL, company_phone CHAR(16) NOT NULL, company_fax CHAR(16), company_mobile CHAR(16), company_email CHAR(100) NOT NULL); |
Nu heb ik mijn script laten reviewen door een collega, en hij zei me dit:
# It is advised (also mentioned by the MySQL guys) to make ALL fields "NOT NULL".
# a. It makes everything faster and you save one bit per column
# b. It saves checking on "ISNULL" While retrieving data
# c. By having all data "NOT NULL", you can use receiving a "NULL" value before creating a record to indicate error in application
# d. Having all fields "NOT NULL" it is advised to initiate all fields with an "empty" value (= NOT NULL) before creating a record. This can be done automatically to set for all fields the 'default' value to "empty"
Maar nu weet ik niet of dit wel het beste is qua performance.
a: waarom scheelt dit een bit per column?
b: waarom is het checken op ISNULL zo erg? anders moet ik checken op een lege string oid? wat is het verschil?
c: het lijkt me erg gebruikersonvriendelijk om alles NOT NULL te maken. (niet iedereen heeft een fax bijvoorbeeld)
d: Je kan dit natuurlijk vermijden door een DEFAULT waarde in te stellen (zoals lege string of zo), maar het gebruik van DEFAULT en NOT NULL tegelijkertijd is toch overbodig? Als ik een DEFAULT waarde instel, kan het toch nooit NULL zijn
Ik heb het gevoel alsof ik iets heel simpels over het hoofd zie, maar dat zou ik dan graag willen horen