Toon posts:

[Alg] Kassa applicatie & Webshop

Pagina: 1
Acties:
  • 165 views sinds 30-01-2008
  • Reageer

Verwijderd

Topicstarter
Ik zou graag wat advies willen hebben over het volgende ontwerp:

Ik ga een kassa applicatie maken (print facturen, beheert assortiment, enz...). Dit zal gemaakt gaan worden in Delphi 7. Als database kies ik zeer waarschijnlijk Interbase/Firebird, omdat ik daar al behoorlijk wat ervaring mee heb en het perfect werkt i.c.m. Delphi.

Bij de hoster zal ik een webshop maken in php. Uiteraard zit hier ook een database bij, waar heel het assortiment in staat en alle bestellingen. De bedoeling is dat ik deze database wil bijwerken via de kassa applicatie. Er zal dus een verbinding vanaf de kassa applicatie naar de hoster gemaakt moeten worden. Dit betekent dus dat de poort van de database bij de hoster OPEN moet staan.

In de applicatie kan je kiezen om het "lokale winkel" assortiment te synchroniseren met de online shop. Ook is er een optie om de mogelijk klaar staande bestellingen van de webshop op te halen (en die zullen dan handmatig verder afgewerkt worden via de kassa applicatie).

Nu gaat het om 2 dingen:

1) Welke database gebruik ik voor de webshop?
2) Is het "noodzakelijk" om bij deze verbinding gebruik te maken van SSL?


1) In eerste instantie wilde ik gebruik gaan maken van PostGreSQL. Maar na wat onderzoek bleek er niet zo'n goede ondersteuning kwa componenten voor Delphi voor te zijn. Ja er zijn er wel, maar dan werkt de SSL support weer niet onder windows.

Maar misschien is het nog niet zo slecht om MySQL te gaan gebruiken. Het ondersteunt inmiddels ook transacties en voor de taak waar ik het voor nodig heb is het niet zo slecht denk ik. Tevens heeft Delphi al support voor MySQL via de dbExpress componenten.

Het liefste zou ik ook hier gebruik maken van Interbase/Firebird. Echter de combinatie van Interbase/Firebird & PHP loopt niet echt soepel. (Wat precies het probleem was weet ik eerlijk gezegd niet meer. Ik heb een keer een project voor school met een groepje gemaakt en daarbij zat ook een onderdeel van een web systeem waar ook gebruik werdt gemaakt van PHP & Firebird. Ik heb zelf toen een ander onderdeel gemaakt maar volgens de kerel die het webgedeelte gedaan heeft, was de ondersteuning voor Firebird in PHP zeer slecht). Maar misschien dat dat inmiddels al wat verbeterd is. Tevens zijn er volgens mij ook niet echt super veel hosters die Interbase aanbieden.

2) Ik moet dus verbinding maken met die remote database. Bij het maken van de verbinding moeten dus de usernamen en password verstuurd worden. Verder zal de verbinding niet echt lang open blijven staan. Er hoeft maar een paar gegevens gesynchroniseerd te worden, waarna de verbinding weer gesloten wordt.

Zouden jullie hiervoor SSL gebruiken?

  • semicolon
  • Registratie: Mei 2004
  • Niet online
Over 1:
Er zijn toch gewoon interbase functie's in php? (http://nl3.php.net/ibase)
Ik zou als ik jou was hier nog even mee spelen dan, (ook het commentaar lezen), gezien je hiermee samen met Delphi 7 goed vooruit zou kunnen dan.

En voor je 2e vraag weet ik helaas niet veel, ik moet me nog een keer verdiepen in ssl :)

:D/-<


Verwijderd

Waarom dubbele boekhouding? Tegenwoordig heeft iedereen wel breedband internet. Ik zou een kassasysteem maken waarmee je via software verbinding maakt met de database online. Of andersom, dat je online webshop verbinding maakt met een lokale database.

Verwijderd

Topicstarter
Verwijderd schreef op 23 mei 2004 @ 11:59:
Waarom dubbele boekhouding? Tegenwoordig heeft iedereen wel breedband internet. Ik zou een kassasysteem maken waarmee je via software verbinding maakt met de database online. Of andersom, dat je online webshop verbinding maakt met een lokale database.
Nee die optie is uitgesloten, zo wil ik het in ieder geval niet gaan doen.

  • Tha_Butcha
  • Registratie: November 2000
  • Laatst online: 15-04 11:50
rom is dat uitgesloten dan? Want een dubbele database geeft 2x zoveel kans op fouten, qua inhoud en je moet dna ook nog een extra sync interface bouwen, wat nog meer kans op fouten geeft als je 2 verschillende type databases hebt

verder lijkt het me wel bij een webshop wel handig als dat gesyncd wordt, dat beveiligd gebeurt, ten minste als je niet wilt dat een of andere script kiddie je verkeer snoopt
en vervolgens je webshop online lekker aanpast, of nog erger, klant gegevens te pakken krijgt...

Compromises are for the weak


Verwijderd

Als TS aangeeft dat niet te willen, heeft het verder weinig zin er over door te gaan imo.

Iets anders: ik zou zeker NIET voor interbase gaan, maar gewoon voor bv. mysql.

_de_ reden hiervoor: Interbase is traaaaaaag.

Je kunt in Delphi alle databases gebruiken die je maar wilt hoor, gewoon met de standaard database-componenten, of via ADO etc.

  • NMe
  • Registratie: Februari 2004
  • Laatst online: 24-05 14:53

NMe

Quia Ego Sic Dico.

Verwijderd schreef op 23 mei 2004 @ 23:49:
Als TS aangeeft dat niet te willen, heeft het verder weinig zin er over door te gaan imo.

Iets anders: ik zou zeker NIET voor interbase gaan, maar gewoon voor bv. mysql.

_de_ reden hiervoor: Interbase is traaaaaaag.

Je kunt in Delphi alle databases gebruiken die je maar wilt hoor, gewoon met de standaard database-componenten, of via ADO etc.
Interbase is misschien niet het snelste systeem, maar het kan onder andere veel beter integriteit afdwingen dan MySQL. En zo zijn er meer redenen om Interbase, ondanks de snelheid, boven MySQL te kiezen. Wat niet wil zeggen dat je Interbase als eerste keus zou moeten nemen, MSSQL Server werkt vast ook wel.

En verder, zoals Jorgen al aangaf, als je dan toch beide applicaties moet maken, dan moet het geen enkel probleem zijn om het synchroon te houden door maar 1 database te gebruiken, die je op de server draait. Op die manier kan de webshop altijd online blijven, en moet je alleen bij aanpassingen vanuit je kassa applicatie op het internet zijn, en dat is ook logisch, want als je het niet combineert zou je ook éérst de databases moeten synchroniseren...

'E's fighting in there!' he stuttered, grabbing the captain's arm.
'All by himself?' said the captain.
'No, with everyone!' shouted Nobby, hopping from one foot to the other.


Verwijderd

NMe84 schreef op 24 mei 2004 @ 00:43:
Interbase is misschien niet het snelste systeem,
Dat mag je imo best een understatement noemen.. als een moderne DB er 3 uur voor nodig denkt te hebben om 1000 inserts te doen op een normale tabel zonder triggers of generatoren, dan noem ik het traag :)
maar het kan onder andere veel beter integriteit afdwingen dan MySQL.
Dat hangt een beetje af van hoe je e.e.a. installeert. Integriteit afdwingen op de manier waarop jij het hier bedoelt, kan met MySQL net zo goed hoor.
Wat niet wil zeggen dat je Interbase als eerste keus zou moeten nemen, MSSQL Server werkt vast ook wel.
Dat hangt een beetje van je budget af uiteraard.. MSSQL/Oracle/etc zijn niet gratis. Maar alle imo een betere keuze dan interbase.
En verder, zoals Jorgen al aangaf, als je dan toch beide applicaties moet maken, dan moet het geen enkel probleem zijn om het synchroon te houden door maar 1 database te gebruiken, die je op de server draait. Op die manier kan de webshop altijd online blijven, en moet je alleen bij aanpassingen vanuit je kassa applicatie op het internet zijn, en dat is ook logisch, want als je het niet combineert zou je ook éérst de databases moeten synchroniseren...
Hoewel ik het geheel met je eens ben, is dit totaal niet relevant. TS geeft aan dat hij dat niet wil, dan heeft het weinig nut er verder over door te gaan. Ik heb zelf in het verleden een soortgelijk ontwikkeltraject meegemaakt waarbij een rechstreekse koppeling ook makkelijker geweest zou zijn, maar 'men' (directie) dit pertinent niet wilde, omdat dit onveiliger zou zijn. Tsa, dan heb je je als automatiseerder te schikken, en te roeien met de riemen die je hebt.

  • NMe
  • Registratie: Februari 2004
  • Laatst online: 24-05 14:53

NMe

Quia Ego Sic Dico.

Verwijderd schreef op 24 mei 2004 @ 00:48:
Dat mag je imo best een understatement noemen.. als een moderne DB er 3 uur voor nodig denkt te hebben om 1000 inserts te doen op een normale tabel zonder triggers of generatoren, dan noem ik het traag :)
Hehe, ik wist niet dat het zo erg gesteld was met Interbase. Maar zo'n batch operaties zullen waarschijnlijk in dit geval niet tot weinig voorkomen.
Verwijderd schreef op 24 mei 2004 @ 00:48:
Dat hangt een beetje af van hoe je e.e.a. installeert. Integriteit afdwingen op de manier waarop jij het hier bedoelt, kan met MySQL net zo goed hoor.
MySQL kan niet eens NOT NULL afdwingen... En dat is maar één van de vele voorbeelden die te noemen zijn. Voor een simpele website maakt dat niet veel uit, maar voor een webshop waar persoons- en betalingsgegevens mee geregeld wordt is het toch wel handig om de missende checks erbij te hebben, zodat je niet voor verrassingen komt te staan. Lullig als je eerst nog eens moet gaan uitzoeken waar je iets heen moet sturen omdat je database het verkeerd opgeslagen heeft. (Dat je dit soort checks beter OOK in je code behoort te zetten even terzijde. :P)
Verwijderd schreef op 24 mei 2004 @ 00:48:
Hoewel ik het geheel met je eens ben, is dit totaal niet relevant. TS geeft aan dat hij dat niet wil, dan heeft het weinig nut er verder over door te gaan. Ik heb zelf in het verleden een soortgelijk ontwikkeltraject meegemaakt waarbij een rechstreekse koppeling ook makkelijker geweest zou zijn, maar 'men' (directie) dit pertinent niet wilde, omdat dit onveiliger zou zijn. Tsa, dan heb je je als automatiseerder te schikken, en te roeien met de riemen die je hebt.
offtopic:
Zolang TS aangeeft dat hij het niet wil, en niet dat hij het door organisatorische redenen niet kan, neem ik aan dat het zijn eigen keuze is. En als het zijn eigen keuze is, dan kan hij beter overstappen. :)

'E's fighting in there!' he stuttered, grabbing the captain's arm.
'All by himself?' said the captain.
'No, with everyone!' shouted Nobby, hopping from one foot to the other.


  • Janoz
  • Registratie: Oktober 2000
  • Laatst online: 12:00

Janoz

Moderator Devschuur®

!litemod

Ad NMe84:

En als het wel zijn keuze is, dan moet het natuurlijk helemaal niet moeilijk zijn om zijn beweegredenen alsnog even aan te geven ;).

Hier wordt door enkele mensen op gehamerd omdat het synchronizeren van 2 datasources bij lange na niet zo simpel is als wordt gedacht.

Ken Thompson's famous line from V6 UNIX is equaly applicable to this post:
'You are not expected to understand this'


Verwijderd

Al gedacht aan het gebruik van webservices? Dan hoeft je poort van de database server niet constant open te staan. Je hebt een aantal webservices waarbij je dan een paswoord moet voorzien (is dit mogelijk? ik denk van wel) en dan de juist data terug krijgt.
Of omgekeerd, al je data "posten" naar de webservice.

(Uiteraard maak je het je eigen veel simpler als je maar met 1 database gaat werken, namelijk die op het internet. Je kan dan perfect via webservices de data van het web integreren met je kassa programma. Waarom is dit geen optie? Gaat het te traag gaan denk je?)

Verwijderd

Topicstarter
Verwijderd schreef op 23 mei 2004 @ 23:49:Je kunt in Delphi alle databases gebruiken die je maar wilt hoor, gewoon met de standaard database-componenten, of via ADO etc.
PostGreSQL is bijvoorbeeld standaard niet te gebruiken met Delphi, ja wel als je ODBC wil gebruiken, maar dat gebruik ik al lang niet meer.


Nog even over de optie van 1 database:

Op zich is het wel mooi dat je 1 db op de server bij de hoster hebt staan. Alleen je moet dus bij iedere actie in je winkel verbinding gaan maken met die database. Als je gaat nadenken wat er vaker voorkomt: afrekenen in de winkel of synchroniseren dan is dat het afrekenen in de winkel.

Tevens heb je een probleem als de verbinding er uit ligt. Je kan dan geen facturen maken. Dit is ook allemaal in een ander topic al naar voren gekomen. Dat is ook de rede dat het zoiezo 2 db's zullen zijn. Het kan gewoon niet anders, wil je gewoon een normaal werkend systeem hebben.

Verwijderd

Hoi,

Voor het opzetten van een webshop kan je misschien OsCommerce overwegen. Een stukje open-source website, dat gebruik maakt van PHP4 en MySQL. Je mag dit vrij gebruiken en aanpassen aan je eigen wensen.

Een aanrader

www.oscommerce.com

Bobke
:*)

  • __fred__
  • Registratie: November 2001
  • Laatst online: 24-05 22:44
Postgres is verschrikkelijk mooi te gebruiken in Delphi. En wel met de ZEOS library, die onder LGPL beschikbaar is. De combinatie delphi en Postgres is op die manier ijzersterk.

http://www.zeoslib.net/

Ow, BTW, zeoslib ondersteunt ook Interbase en Firebird ;-)

[ Voor 14% gewijzigd door __fred__ op 24-05-2004 10:00 ]


Verwijderd

Topicstarter
__fred__ schreef op 24 mei 2004 @ 09:57:
Postgres is verschrikkelijk mooi te gebruiken in Delphi. En wel met de ZEOS library, die onder LGPL beschikbaar is. De combinatie delphi en Postgres is op die manier ijzersterk.

http://www.zeoslib.net/

Ow, BTW, zeoslib ondersteunt ook Interbase en Firebird ;-)
Ja ik was op mijn zoek tocht deze library al tegen gekomen en had het al geinstalleerd. Echter hij heeft volgens mij geen support voor PostGreSQL 7.4 en voor SSL. Nou weet ik niet of er nou zoveel veranderd is tussen 7.3 en 7.4

  • DeoDupke
  • Registratie: Maart 2002
  • Laatst online: 26-03-2024
Verwijderd schreef op 24 mei 2004 @ 09:43:
Hoi,

Voor het opzetten van een webshop kan je misschien OsCommerce overwegen. Een stukje open-source website, dat gebruik maakt van PHP4 en MySQL. Je mag dit vrij gebruiken en aanpassen aan je eigen wensen.

Een aanrader

www.oscommerce.com

Bobke
:*)
jammere van die is dat je register_globals aan moet hebben staan op je host, en die heeft ( bijna niemand). Er is nu wel iemand die een oplossing heeft maar voor mij werkt die ook nog niet helemaal perfect

No worries m8


  • __fred__
  • Registratie: November 2001
  • Laatst online: 24-05 22:44
Verwijderd schreef op 24 mei 2004 @ 10:04:
[...]
Ja ik was op mijn zoek tocht deze library al tegen gekomen en had het al geinstalleerd. Echter hij heeft volgens mij geen support voor PostGreSQL 7.4 en voor SSL. Nou weet ik niet of er nou zoveel veranderd is tussen 7.3 en 7.4
Support voor SSL op het Win32 platform ligt meer aan het feit dat libpq niet met ssl support gecompileerd kan worden op windows. Postgresqlconnecties secure opbouwen vanuit windows is sowieso wat lastiger. Je kunt natuurlijk wel een SSL tunnel opzetten. (bijvoorbeeld via stunnel en openssl http://www.stunnel.org/)

Het verschil tussen de versies kan gevonden worden op:

http://www.postgresql.org/docs/7.4/static/release.html

Daarbij moet wel opgemerkt worden dat je gewoon met een 7.3 client naar een 7.4 server kunt connecten. Alleen de features van het nieuwe 7.4 protocol kun je niet gebruiken.

  • lordgandalf
  • Registratie: Februari 2002
  • Laatst online: 20-05 15:28
NMe84 schreef op 24 mei 2004 @ 00:58:

MySQL kan niet eens NOT NULL afdwingen... En dat is maar één van de vele voorbeelden die te noemen zijn.
Vreemd dat ik dan in phpmyadmin toch een veld NOT NULL kan aan geven ??? dus volgens mij heb je niet naar de mogelijkheden van mysql gekeken.

Steam: Profile / Socialclub: Profile / Uplay: minedwarf / Origin: lordgandalf3


  • NMe
  • Registratie: Februari 2004
  • Laatst online: 24-05 14:53

NMe

Quia Ego Sic Dico.

lordgandalf schreef op 24 mei 2004 @ 11:02:
[...]


Vreemd dat ik dan in phpmyadmin toch een veld NOT NULL kan aan geven ??? dus volgens mij heb je niet naar de mogelijkheden van mysql gekeken.
Je kan het aangeven maar het wordt niet afgedwongen... Probeer maar eens.

'E's fighting in there!' he stuttered, grabbing the captain's arm.
'All by himself?' said the captain.
'No, with everyone!' shouted Nobby, hopping from one foot to the other.


  • djluc
  • Registratie: Oktober 2002
  • Laatst online: 13:27
Geef eerst eens aan wat er allemaal mogelijk moet zijn op de site. Moeten artikelen bijvoorbeeld niet meer getoond worden als ze uitverkocht zijn o.i.d. Of maakt dit allemaal niets uit?

Verwijderd

Topicstarter
djluc schreef op 24 mei 2004 @ 11:36:
Geef eerst eens aan wat er allemaal mogelijk moet zijn op de site. Moeten artikelen bijvoorbeeld niet meer getoond worden als ze uitverkocht zijn o.i.d. Of maakt dit allemaal niets uit?
Nee er wordt GEEN voorraad indicatie weergegeven. De webshop toont alleen het complete assortiment. Klanten kunnen daar bestellingen plaatsen. Vervolgens wordt via de kassa applicatie om de X minuten of handmatig de mogelijke bestellingen opgehaald van de db van de webshop en worden ze verder handmatig verwerkt.

Verder zal er niks speciaals op de site zijn.

Verwijderd

Topicstarter
Mij nader inzien, laat ik heel het encryptie/SSL verhaal zitten. Het wordt namelijk zo dat de hoster waar ik het pakket neemt de poort van de database server openzet voor 1 bepaald ip adres.

Dus nu kan iedereen via een sniffer wel zien wat de username en pasword zijn van de db connectie + dat ze alle data kunnen zien (data = assortiment + bestellingen) maar ze kunnen nooit verbinding maken met die database, omdat voor hen de poort niet openstaat.


Nu is het alleen nog een afweging voor mij of ik MySQL of PostGreSQL ga gebruiken.
Pagina: 1