Billig/gratis database?

Tags:    c++

Hola

Jeg er ved lave et lille program som jeg i sidste ende gerne vil tage lidt penge for.
Programmet har brug for en database og jeg har egenligt brugt MySql indtil nu.
Men så opdagede jeg ved et tilfælde at man skal betale (en pæn sum penge) for at bruge den i kommercielle programmer. Prisen for at bruge MySql starter på 3500,- om året og det gør lige pludseligt mit program urealistisk dyrt. Umiddelbart kan jeg bruge det gratis hvis jeg udgiver mit program som open-source men det har jeg egentlig ikke lyst til da jeg har købt nogle vcl-komponenter som jeg gerne vil kunne "tjene" ind igen.
Er det nogle gratis/billige alternativer? Problemet er at det også skul være muligt at hente database-oplysningerne via en hjemmeside...

Nogen idéer?

Jesper



8 svar postet i denne tråd vises herunder
2 indlæg har modtaget i alt 2 karma
Sorter efter stemmer Sorter efter dato
De mest typiske databaser i sammenhæng med hjemmesider er AB's MySQL Server og Microsofts SQL Server 2005, så du skal bare sørge for de understøtter disse, og fordelen ved MySQL er det er gratis.



Designmæssigt vil det altid være pænest at abstrahere databasetypen fra, hvilket gør det muligt problemfrit at skifte mellem databaser.

Typisk vil man oprette et data access lag, som tager sig af persisteringen af objekterne, der kan så være forskellige implementeringer til dette lag. En implementering til Oracle, Sql etc. etc. hvor de alle overholder den samme kontrakt, der er defineret for laget. Udskiftning af lagene kan herefter (med det rette design) foregå på run-time tidspunktet.

Nogle vælger at bruge ODBC laget til dette, men ikke alle databaser reagere ens på ODBC laget, så i sådan et tilfælde skal man sørge for at gennemteste grundigt på alle databasetyper.

Hint: Se i øvrigt min blog for publikationer om arkitektur, hvor der blandt andet ligger en publikation omkring connection pooling med en abstrakt factory.


http://jessn.blogspot.com/


Hth



Indlæg senest redigeret d. 23.11.2006 17:30 af Bruger #10448
Der er indtil flere andre muligheder!

Microsoft har til en GRATIS version af deres SQL Server 2000, som hedder Microsoft Desktop Engine (MSDE) og tilsvarende en til version 2005, som hedder SQL Server Express Edition.

http://msdn.microsoft.com/vstudio/express/sql/download/


Oracle har lavet en GRATIS version af deres 10G database, som hedder Oracle 10G Express Edition, som dog begrænser sig til 2GB hukommelse og en processor.

http://www.oracle.com/technology/software/products/database/xe/index.html


HTH



Indlæg senest redigeret d. 23.11.2006 17:34 af Bruger #10448
Tak Jess

Dem vil jeg tage et kig på....
Jeg er dog siden komme til at tænke på: Hvis folk kører mit program op mod deres mysql database som de har via deres hjemmeside-udbyder (f.eks. B-One og lign.) så er jeg vel udeover licens-problemerne? Så kan jeg jo bare sige at det er folks egen hovedpine/ansvar at få en udbyder med MySql?

Hilsen
Jesper



Det kan du gøre, men det vil næppe give dig god omtale = det vil være dårlig forretning.



Nu bliver mit program udviklet i 2 udgaver. En der kan køre lokalt (hvor jeg kan bruge en af de nævnte gratis databaser) og en hvor folk også gerne vil ha vist informationen via deres hjemmeside, så der kan man vel godt stille som krav at de skal bestille adgang til en MySql-db (er det efterhånden ikke standard alligevel?), uden at det er dårlig forretnings-stil?

Hilsen
Jesper



Hvis folk kører mit program op mod deres mysql database som de har via deres hjemmeside-udbyder (f.eks. B-One og lign.) så er jeg vel udeover licens-problemerne?

Faktisk ikke. MySQL er GPL, som ikke tillader, at man lænker proprietære programmer til koden, hvilket du nok ikke kommer udenom. Havde det været LGPL måtte du lænke til MySQL koden uden at open source din kode.

Men du kan jo lave din arkitektur uafhængig af database driveren så der bare bliver indlæst en DLL som så dynamisk lænkes. Så kan dit program være proprietært og du kan så udgive en opensource DLL som implementerer din persistens kode.



God ide Robert, tak for det... Så må jeg jo se om jeg kan få det til at virke :D



t