Potresti usare sqlite . Può memorizzare un sacco di righe e funzionare su molti sistemi operativi (Windows, Linux, Android, MacOSX).
Potresti prendere in considerazione l'installazione e l'uso di alcuni sistemi Linux su quel singolo PC e sviluppare il tuo sistema su questo (forse come un'applicazione web utilizzando un database) e utilizzare alcuni software RDBMS gratuiti come PostGreSQL o MariaDb (o MySQL , molto vicino a MariaDb). Sono in grado di gestire molte righe (vedi questo per PostGreSQL e questo e altre cose per MySQL). In pratica, i limiti sono limitati dalle capacità hardware.
I have decided to develop an MS Access file-based desktop application.
Potrebbe non essere stata la decisione migliore. Dovresti considerare alternative al software libero (come quelle sopra menzionate) e potresti pensare ad alcune applicazioni web (utilizzabili da diversi browser, magari su tablet economici).
Si noti che RDBMS di centinaia di milioni di righe viene regolarmente distribuito su sistemi Linux che eseguono PostGreSQL o MariaDb (o MySQL, quasi equivalente).
Indipendentemente dalla soluzione tecnica che pensi, non dimenticare di eseguire il backup dei dati molto periodicamente e di definire alcune procedure di backup (e di controllare ogni tanto che puoi ripristinare dai backup).
La maggior parte del costo è probabilmente correlata a il tempo e gli sforzi di sviluppo e alle tue capacità. Questo è probabilmente più costoso dell'hardware o di qualsiasi licenza software di cui avrai bisogno.
If I can anticipate correctly, this design is destined to fail.
Questo è falso se si utilizza un RDBMS reale su un sistema Linux (quelli disponibili gratuitamente sulla maggior parte delle distribuzioni Linux ), oppure se usi sqlite . Il tuo design è valido (e potresti usare software gratuito per questo, tutti i prodotti menzionati qui sono software libero). La scelta del database e del sistema operativo è discutibile. BTW, sviluppare da zero il tuo POS potrebbe essere più costoso rispetto all'utilizzo di soluzioni esistenti (e potresti persino trovare, adattare e migliorare alcuni quelli software gratuiti ) .
For instance, after only one week, DailySales table will become so huge that the database
Ogni giorno 10000 file in più sono minuscole . La maggior parte degli RDBMS (e sqlite) può gestirli. In 3 anni, ciò significa 10 milioni di righe, non un grosso problema. Ovviamente è necessario dimensionare correttamente il disco (ma assumendo 4Kbyte di spazio su disco per riga, 40Gbytes non è molto, probabilmente nel tuo caso ogni riga consuma solo diverse dozzine di byte). Ma il tuo database è piccolo o minuscolo w.r.t. alla pratica di oggi. Non preoccuparti del numero di righe (ma definisci correttamente rilevanti indici di database , sono legati alle domande che farai). La maggior parte dei database può gestire facilmente molte dozzine di milioni di righe (se il tuo schema del database è abbastanza buono), questo non è un problema oggi. Quindi non hai un "numero enorme di righe" ma piuttosto piccolo.
Se (per una ragione che non hai spiegato) hai bisogno di sviluppare un software desktop (non qualcosa in esecuzione in un browser) potresti sviluppare alcune applicazioni desktop con una GUI su Linux usando alcuni RDBMS (ad esempio usando Qt ). Tuttavia, un'applicazione web può essere utilizzata da diversi tablet economici. E puoi trovare librerie server HTTP (ad es. Wt o libonion , per C o C ++ su Linux) per svilupparlo (vedi anche questo ).