d.bernaert Posted October 5, 2019 Share Posted October 5, 2019 Hello, I have a pretty complex situation and I would like to hear from others who are in the same situation how they handled this. We are working on a pretty large ERP application, but it needs to be modular. By this i mean users an activate modules or deactivate modules depending on their subscription. That's basically no problem with enabling items in combination with their account. But we also have a custom software for several customers that uses the same core (relations, ...). How would you organize this? One big project (all ERP modules + custom software in one big project)? Or would you create several projects where the core is one project and custom software are separate projects. Problem in that case is that both projects will probably use common functionality (for instance customers, suppliers, ...) Also interaction can be possible between both, someone can use all ERP modules + some extra tailor-made functions... Any suggestions or ideas are more than welcome. Dominique 1 Link to comment Share on other sites More sharing options...
mierlp Posted October 5, 2019 Share Posted October 5, 2019 Hi Dominique I had the same situation in a vcl desktop situation years ago. I started with different modules and functionality in .dlls. Based on the subscription the user get extra functionality. After a year a build all functionality in one .exe because sometimes functionality of a .DLL or a part was needed in a other part of the software. Not in the beginnen because the design was completed but after a year new functionality was needed. Sure it can be done but you have to design you program in small pièces. Now i put procedures or functions in datamodules so i can call them when needed and linked to the forms or modules where user can have subsriptions for. This is the way i build my unigui programs. I m also interestet how other members deal with this and learn from it.. so i hope more members will share there experiance Regards peter Link to comment Share on other sites More sharing options...
shawdown Posted October 5, 2019 Share Posted October 5, 2019 I am also developing a great application that has several modules including for different market segments. Everything is parameterized by the database. I am putting everything in the same project. Link to comment Share on other sites More sharing options...
d.bernaert Posted October 5, 2019 Author Share Posted October 5, 2019 Ok thx, so one big application. So i have 2 more questions: what database access to use? I'm on Firebird. I'm now using Ibdac, works great and stable. Would it be better to use for instance Data Abstract which works in disconnected mode (only connecting for fetching and updating) or would the benefit for scalability be minor? Third question is the structure of the databases. I now have 1 big database for all companies working on the platform. Do you use 1 database or 1 database per company? I'm just thinking about maintenance with structure updates, now I only have to update one database, if I have 50 it requires some work or additional tooling to get it done. Thx, Dominique Link to comment Share on other sites More sharing options...
mierlp Posted October 5, 2019 Share Posted October 5, 2019 Hi I use mysql server with devart component. Easy to host and built mirroring. I have a out 30 customers using the application and every customers has own database environment. Every database environment has via own database backup/restore possibility which we manage. Using a SQL script it is easy to update or change tables. Yes hou have to do it several times but thats easy to automate. But restoring database for one customer can be tricky when eveything is in 1 environments. See also https://digitalguardian.com/blog/saas-single-tenant-vs-multi-tenant-whats-difference Link to comment Share on other sites More sharing options...
billyChou Posted October 5, 2019 Share Posted October 5, 2019 1. Database transaction consistency Recommendation postgresSQL . 2. Blocks, inventory quantity, recalculation mechanism and verification mechanism. Link to comment Share on other sites More sharing options...
20soft Posted October 6, 2019 Share Posted October 6, 2019 I think , you should separate the module My solutions is ( UniGUI + BPL ) <--------> mORMot (Restfull , SOA ) <----> Database Link to comment Share on other sites More sharing options...
NizamUlMulk Posted October 7, 2019 Share Posted October 7, 2019 I have DB with all modules functionallity. Application with all modules for administrators and a lite version with full modules for non administrators. Menu is constructed by each application, reading contracted modules, which, have or not prerequisites. And so you can assemble the final version for each client. If 1 only wants billing, sales and stock, only that works, or, if accounting module wants for add, it works, or aggregate clients controls, or suppliers controls, subsidiarys, cash, close of box, bulk or itemized sales, logistic, etc. etc. All governated by database. And if somebody wants some very special.... not included, a custom development override some standard module, and a particular version is provided. Link to comment Share on other sites More sharing options...
Wilton Ergon Posted October 9, 2019 Share Posted October 9, 2019 have a unique database: Advantages: Deploying a new customer, just create a new user or store Backup is also easier as it is just a bank. disadvantages: separate benches Smaller banks are usually faster. faster backups, You can restore the backup only from one client without affecting the others. reports will run faster because you won't have to do filters by user or store. In this model, on a shared server, where you will have numerous banks, you can have a specific bank for common public tables that are not managed by clients, such as CEPS tables, STATES, and other information that can be standardized for all banks. you will have to see what may be best for you Link to comment Share on other sites More sharing options...
Recommended Posts
Please sign in to comment
You will be able to leave a comment after signing in
Sign In Now