...die dazu gehörigen Stückzeilen
meinst Du Stück
zahlen?
Der zweite Ansatzt ist sicher der professionellere.
Also, ich habe das so verstanden, dass der erste Ansatz so aussieht:
Bestellnummer | Lieferdatum | Produkt_ids | Stückzahlen
12345 | 24.07.2012 | 12, 24, 256 | 2, 8, 16
12346 | 24.07.2012 | 23, 42, 303 | 2, 4, 2
...
Im Prinzip gibts hier auch eine 1:n Beziehung, wie beim zweiten Ansatz, nur dass man die 'Verwaltung' hier selbst programmieren muss.
Die Spalte Produkt_ids ist prinzipiell auch eine Tabelle (ich nenne sie Tabelle B) mit n Datensätzen, die genau einem Datensatz in der anderen Tabelle (einer Bestellnummer) zugeordnet ist.
Die Spalte Stückzahlen ist sozusagen die zweite Spalte der Tabelle B. Die Verknüpfung besteht durch die position in der Spalte (die erste Zahl von Stückzahlen gehört zur ersten Zahl von Produkt_ids).
Fazit:
Strukturell ist beides das selbe, aber der erste Ansatz verschleiert die Struktur, ist langsamer, unübersichtlich und fehleranfällig, und erfordert langfristig mehr Programmieraufwand.
Kurzfristig war es vermutlich an irgendeiner Stelle einfacher, das 'mal eben schnell' so zu machen.