# Software für Windows PC mit integierter Db oder Textdatei?



## Cindy (21. Sep 2007)

HI ich bräuchte mal einen Rat ich will ein Warenwirtschaftssystem programmieren in dem sich ca. 10 000 Bilder + Artikelbeschreibung( Preis.....) befinden sollen. Das ganze soll natürlich später als normale setup.exe umgewandelt werden so das jeder Windows PC das Programm installieren kann.

Nun zu meinen Fragen wie erstellt man sowas am besten:


Als Textdatei? 

Oder als DB wenn ja welche würder ihr nehmen H2,Msyql.....?


Und wie wandele ich das ganze um so das jeder Windows PC die Setup Datei ausführen kann?


Also Zusammenfassung Programm was jeder später installieren kann in dem sich 10 000  Texte befinden?



Vielen Dank!!


----------



## Wildcard (21. Sep 2007)

Eine Textdatei? Für Bilder?  :lol: 
Nimm die DB....


----------



## Lennart (21. Sep 2007)

Die Daten eines Warenwirtschaftssystem in Textdateien zu speichern ist wahrscheinlich keine gute Idee.

Java DB (= Apache Derby) ist bei Java 6 dabei.

Es bleibt noch der alte Streit:
Bilder in die DB oder ins Filesystem?
Dazu gibt's sicher jede Menge Infos im Web.

Grüße
Lennart


----------



## Guest (21. Sep 2007)

Alos es is möglich eine DB zu verwenden un diese dann in eine Setup zu integrieren?? Welche DB würdest du mir dann empfehlen??


----------



## Cindy (21. Sep 2007)

Bzw. wie erstellt man in Java eine Setup .exe System??


----------



## Cindy (21. Sep 2007)

Wäre das ganze auch mit Msql zu realisieren??


----------



## Lennart (21. Sep 2007)

Cindy hat gesagt.:
			
		

> Wäre das ganze auch mit Msql zu realisieren??



Was ist "das ganze"?
Single-User? Multi-User?
Open Source oder proprietär?

Warum nur für Windows? Andere Märkte wachsen schneller.

Msql oder MySQL oder MS-SQL?


----------



## Guest (22. Sep 2007)

MMh das ganze soll Single User Betrieb. Deswegen was wäre am besten wenn man dieses Warenwirtschaftssystem für Windows Pc realisierene bzw. wie lääst sich das ganze dann als Setup.exe umwandeln?? Ich hoffe du weist wie ich das meine?? 


Also wäre es möglich mit MySql ?


----------



## Lennart (22. Sep 2007)

Neben technischen spielen auch lizenzrechtliche Überlegungen eine Rolle. Deshalb die Frage 





> Open Source oder proprietär?



Als Embedded-Datenbank kommt MySQL vermutlich nur bei Open Source-Projekten in Frage.

Setup.exe ... weiß ich nicht. Bin mit einem Jar zufrieden.

Grüße
Lennart


----------



## HoaX (22. Sep 2007)

es gibt viele programme die einem helfen ein setup um eine java-anwendung zu basteln. ich habe z.B. mal izpack dafür verwendet. aber stell doch den punkt setup erstmal hinten an. schau erstmal zu dass du eine fertige anwenung erstellst die man dem anwender zumuten kann. einem setup ist es eigentlich egal was du rein packst, und wer weiß, vielliecht gibt es ja bis zur fertigstellung deiner anwendung ja _das_ setup tool schlechthin.

ich habe auch eine rcp anwendung laufen die artikel aus einer wawi importiert und pflegt. bin hierbei mit h2+hibernate ganz zufrieden. bilder hab ich auch in der db und läuft noch ausreichend schnell. derby/javadb mag ich überhaupt nicht, da ist mir das sql zu sehr eingeschränkt, vorallem bei stukturänderungen an tabellen. und langsam ist es auch im vergleich zu h2.


----------



## Cindy (22. Sep 2007)

Also ja ich möchte die Software später verkaufen.  Mmh da gibts ja so viele Db's bin da echt überfordert?


----------



## Lennart (22. Sep 2007)

Betreffend DB gibt's hier einen parallelen Thread.

Das einfachste ist, mit der DB, die bei Java 6 dabei ist (Java DB), zu beginnen. Gibt es später einen konkreten Grund, kann die DB immer noch gewechselt werden.

Grüße
Lennart


----------



## HoaX (22. Sep 2007)

spätestens wenn du ne spalte aus der tabelle löschen willst wirst du einen grund dafür haben  
und ein einziges jar, z.B. h2.jar, einzubinden sollte wohl jeder schaffen der vorhat sein werk später zu verkaufen.


----------



## Lennart (22. Sep 2007)

Strukturänderungen sind meistens mühsam. Deshalb arbeiten viele lieber zehn Jahre lang mit einer verkorksten Struktur als da etwas zu ändern :wink: 

Danke für den Hinweis!

Folgendes könnte auch sein:
Zuerst freut man sich, dass Derby schon bei Java dabei ist. Später stellt man fest, dass man doch von db.apache.org/derby/ eine neuere Version holen muss.

Grüße
Lennart


----------



## Cindy (23. Sep 2007)

Erstmal danke für eure Antworten allerdings was is den genau der Unterschied zu H2 un Mysql DBs?


----------



## Cindy (23. Sep 2007)

Mmh also wie ich das jetzt verstanden habe darf man MYSQL DB Projekte nicht verkaufen außer man kauft sich die teure Lizenz?? Welche Db wäre dann die günstigste und beste wenn man seine Software später vermarkten möchte`?


----------



## Lennart (23. Sep 2007)

Cindy hat gesagt.:
			
		

> was is den genau der Unterschied zu H2 un Mysql DBs?



Eigentlich sollte es DBMS heißen, für Datenbankmanagementsystem.

DBMS' sind ziemlich komplexe Softwarepakete.

Niemand kann Dir so ganz schnell und gratis alle Unterschiede und Vor- und Nachteile erklären.

Vorschlag:
Lies Dich einmal ein bißchen ein und formuliere für Dich selbst Deine konkreten Anforderungen.

Vielleicht hilft der Link www.iks-jena.de/mitarb/lutz/usenet/sql.html

Grüße
Lennart


----------



## Lennart (23. Sep 2007)

Hallo Cindy!

Nachtrag:

Du könntest auch einfach zur Kenntnis nehmen, dass Hoax mit H2 zufrieden ist, und nachschauen, ob auch andere zu einer ähnlichen Einschätzung kommen.

Wichtiger wäre vorerst die Architektur Deiner Anwendung. Das DBMS ist ein untergeordnetes System.

Grüße
Lennart


----------



## robertpic71 (24. Sep 2007)

Cindy hat gesagt.:
			
		

> ...was is den genau der Unterschied zu H2 un Mysql DBs?



Das Thema ist etwas umfangreicher, daher die aus meiner Sicht wichtigsten Punkte:

*Lizenz*
MySQL darf man gratis benutzen, aber wenn man es mit seinem Produkt verkaufen will, braucht man die kommerzielle Lizenz. Umgehungsmöglichkeit: Man verkauft nur sein Programm (ohne DB) und der Kunde muss sich selber die Datenbank organisieren/installieren.

H2 ist wirklich frei - auch im  Bundle mit eigener Software.

*Installation*
MySQL benötigt  sein eigenes Installationsprogramm. Wie auch immer man das löst - es wird wohl ein wenig "Gefrickel" notwendig sein, alles mit einem Setupprogramm abzuwickeln.

Die H2 Datenbank ist einfach nur eine weitere Jar-Datei für dein Programm.

Zu deiner anderen Frage (Setup.exe): Da empfehle ich einen Exe-Wrapper wie z.B. JSmooth. Einfach mal im Forum nach JSmooth suchen. 

*Geschwindigkeit*
Mit MySQL wird auch lokal über das Netzwerk kommunziert. Bei H2 entfällt diese Kommunikation im sogenannten "embedded" Betrieb. H2 ist auch standardmäßig auf Singleuserbetrieb gestellt. H2 ist im Singleuserbetrieb (nach Angaben  der H2 Homepage, aber auch meinen Erfahrungen) um Häuser schneller.

*Fehlerquellen*
Bedingt durch die Netzwerkkommunikaton kann MYSQL von einer lokalen Firewall gestört werden. Auch eine andere MySQL-Installation kann stören.

Das einzige Plus, dass ich bei MySQL sehe, ist die bessere Wartungssoftware.  Ansonsten muss ich voll und ganz als H2-Fan outen - und ich habe beruflich mit DB2, Oracle, MySQL  und PostgresQL  zu tun.

Auch was die Datenmengen angeht, sehe ich da keine Probleme. Ich habe >>  diesen Webkatalog << mit ca. 14.000 html-Seiten mit der H2-Datenbank laufen. Ich habe die Bilder zwar nicht in der Datenbank, aber die Html-Seiten + Artikelstruktur machen auch über 300 MB aus.

/Robert


----------



## Der Müde Joe (24. Sep 2007)

PostgreSQL steht unter BSD und könnte somit sogar in kommerziellen Produkten benutzt werden.
H2 steht unter MPL (verändert) aber auch kein Problem
MySQL ...siehe vorschreiber


----------

