# H2:Wie kann man insert eine Reihe "int" wert als blob in table?



## fatfox (29. Mai 2011)

Hi alle,

ich habe so eine Table "create table mytest(userId int, itemIds blob)";

Ich möchte für jeden User seine geklaufte Items in "itemIds" hinzufügen.

z.B
userId | itemIds
1 |  155,166,89,33...
2 |  456, 89...
3 |  90,786, 88...

Die ItemIds sind alle integer, ich habe versucht so zu machen: insert mytest values (1, '155, 166, 89, 33,...'), aber das ist natürlich falsch. Wie kann man das richtig machen? Ist es überhaupt möglich?

Vielen Dank für die Bemühung!


----------



## XHelp (29. Mai 2011)

Könntest ja rawtohex verwenden. Aber dein Tabellenaufbau ist komisch, so werden solche Einträge nicht gespeichert. Pack die doch einzeln rein in eine normale int,int Tabelle.


----------



## fatfox (29. Mai 2011)

XHelp hat gesagt.:


> Könntest ja rawtohex verwenden. Aber dein Tabellenaufbau ist komisch, so werden solche Einträge nicht gespeichert. Pack die doch einzeln rein in eine normale int,int Tabelle.



Hi XHelp, vielen Dank für die schnelle Antwort.  Aber wenn ich datei in normale int int table packe, dann wird die Datei doppel so groß wie jetzt.(Meine jetztige Datei ist schon 5 GB groß -_-")

rawtohex verwandet String, beim lesen kriege ich wieder zuerst ein String, und muss ich dannach wieder selbst verarbeiten. 

Gibt es eine ähnliche Funktion wie rawtohex, die verwandet Int?


----------



## XHelp (29. Mai 2011)

Sowas wie wandleAutomatischIrgendeinenBatzenAnZahlenInDieFormDieIchAusIrgendeinemGrundFuerRichtigHalte - Funktion? Ich denke nicht.
Vllt brauchst du z.B. kein int, sondern kannst auf kleinere Datentypen umsteigen


----------



## fatfox (29. Mai 2011)

mmm.........Dann mache ich doch in normale int int Table..........


----------



## fatfox (29. Mai 2011)

XHelp hat gesagt.:


> Sowas wie wandleAutomatischIrgendeinenBatzenAnZahlenInDieFormDieIchAusIrgendeinemGrundFuerRichtigHalte - Funktion? Ich denke nicht.
> Vllt brauchst du z.B. kein int, sondern kannst auf kleinere Datentypen umsteigen



Hi XHelp, ich möchte noch mal fragen, wenn ich eine byte[] Array habe, kann ich sie direkt in Blob Field schreiben?


----------



## XHelp (29. Mai 2011)

Create java.sql.Blob from byte[]
How to copy from byte array into Blob type. (JDBC forum at JavaRanch)
Das sind aber nur die ersten 2 Links bei google unter "h2 byte array write blob", da findest du bestimmt auch mehr.


----------



## fatfox (29. Mai 2011)

XHelp hat gesagt.:


> Create java.sql.Blob from byte[]
> How to copy from byte array into Blob type. (JDBC forum at JavaRanch)
> Das sind aber nur die ersten 2 Links bei google unter "h2 byte array write blob", da findest du bestimmt auch mehr.



 noch mal Danke!!!  Ich habe das zu kompliziert gedacht, deshalb habe ich in Google andere eingegeben, und nichts gefunden.


----------



## Gelöschtes Mitglied 5909 (29. Mai 2011)

wie wäre es mit einer tabelle orders?

orderId userId itemId count
1 1 1 2
1 1 2 1
1 1 5 3
2 1 3 1
3 2 1 1

so ist das eher üblich würde ich sagen


----------



## XHelp (29. Mai 2011)

Wenn schon eine vernünftige Tabellenstruktur machen, dass muss da userID weg, weil da ohne hin immer das gleiche stehen wird. Also lieber "orders_info" und "orders_items" Tabellen


----------



## fatfox (29. Mai 2011)

raiL hat gesagt.:


> wie wäre es mit einer tabelle orders?
> 
> orderId userId itemId count
> 1 1 1 2
> ...



Hi raiL, ich habe nicht ganz verstanden, was ist orderId und count?


----------



## fatfox (29. Mai 2011)

XHelp hat gesagt.:


> Wenn schon eine vernünftige Tabellenstruktur machen, dass muss da userID weg, weil da ohne hin immer das gleiche stehen wird. Also lieber "orders_info" und "orders_items" Tabellen



Hi XHelp, Eh... Ich habe das nicht ganz verstanden. Meinst du dass ich zwei Tabllen nehmen soll? Was ist ihre Strukturen? Entschuldigung, dass ich so viele frage.... Ich bin sehr dumm in Datenbank...


----------



## XHelp (29. Mai 2011)

Du hast eine Tabelle, wo drin steht: Benutzer XY hat eine Bestellung mit Nr. Z am A.B.C getätigt (und auch sonst was für Informationen die auf eine Bestellung relevant sind).
Und eine andere Tabelle, wo drin steht: zu der Bestellung Z gehören Artikeln: D, E, F, G und H. (Nur eben als einzelne Einträge und nicht ein unverwaltbarer Batzen an Binärdaten)
Aussehen tut das ganze so ungefähr wie dir raiL gezeigt hat.


----------

