Thread Leere Daten in Array ersetzen (23 answers)
Opened by Kean at 2011-09-16 13:25

rosti
 2013-09-07 17:43
#169975 #169975
User since
2011-03-19
3194 Artikel
BenutzerIn
[Homepage]
user image
2013-09-06T15:27:58 Muffi
Nimm halt varchar


Ja, das ist auch eine Möglichkeit. Es gibt jedoch noch einen weiteren Aspect, der nicht minder beachtenswert ist: Teamarbeit.

D.h., beim Feldtyp text sieht jeder, dass hier möglicherweise auch mal was Mehrzeiliges abgelegt sein kann. Oder ich sehe das so, wenn ich mir meine gesammelten Werke nach Jahren mal wieder anschauen muss ;)

DB-Design ist ein interessantes und auch dankbares Thema, es hängt viel davon ab. Eine andere Entwicklungsrichtung geht nach noSQL und weg vom RelationShip. Wer bisher seine EUR's fein säuberlich im Datentyp decimal() ablegt, wenns geht mit zehn Stellen hinterm Komma, die DB-Engine jedoch gar nicht für Berechnungen nutzt, sondern nur zum Speichern, sollte mal über ein ORM ö.ä. Datenabstraktion nachdenken.

Das könnte z.B. so aussehen:

Code: (dl )
1
2
3
4
5
Data storage model, Data abstraction

Hostname:Port.Databasename.Tablename.Entityname.HashOfHashes
^
Data Abstraction Layer | Application


Vor einiger Zeit habe ich son Teil entwickelt und habe mich da auch für ein Textfeld für die Daten entschieden. Die NULL-Problematik gibts nur, wenn vom Code her undef gesetzt wird, z.B.:

Code (perl): (dl )
1
2
3
4
5
6
7
8
9
10
11
tie my %bin, 'DBFreezer', (
    base => 'myweb', 
    entity => 'Gartenzwerg',
    tabn => 'newage',
    create => 0,
) or die $@;

$bin{name} = undef;
$bin{vname} = '';

untie %bin;


In MySQL sieht das dann so aus:
Code: (dl )
1
2
3
4
5
6
7
8
9
10
mysql> select * from newage;
+-------------+----+-----+-------+
| entity | id | idx | val |
+-------------+----+-----+-------+
| Gartenzwerg | 1 | 0 | name |
| Gartenzwerg | 1 | 1 | NULL |
| Gartenzwerg | 2 | 0 | vname |
| Gartenzwerg | 2 | 1 | |
+-------------+----+-----+-------+
4 rows in set (0.00 sec)


Btw., die Tabelle hat nur vier Spalten. Es lassen sich jedoch sehr komplexe Objekte darin speichern, die beliebig verschachtelt sein können (Hash of Hashes), ein spezieller, von mir entwickelter Algorithmus (pure Perl) sorgt für die nötige Konsistenz ;)

Viele Grüße!
Last edited: 2013-09-07 17:46:06 +0200 (CEST)

View full thread Leere Daten in Array ersetzen