Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

Find and support an alternative to MS Access for database design #7

Open
uwesinha opened this issue Jun 25, 2021 · 0 comments
Open

Comments

@uwesinha
Copy link

As of now, PVEntityGenerator requires the source file for the database design (its "single source of truth") to be in MDB or ACCDB format. This has a couple of major drawbacks.

Both MDB and ACCDB are not very well documented (see here and here), proprietary, binary formats. Consequences are:

  • Developers are forced to use MS Access for database design which may incur additonal licensing costs on the developers' (or their employers') side.
  • Binary formats are not suitable for concurrent development with GIT (which has become standard in many organizations, including ours); parallel edits of an ACCDB database regularly lead to merge conflicts whose resolution is time-consuming. Either way,

In addition, both Access database formats impose serious limits, e.g.

  • a maximum of 16 relationships per table/entity
  • shorttext, which is mapped to VARCHAR if the target database is MySQL or MariaDB, can only hold up to 255 characters. If you need a database column holding more characters, PVEG (following Access) forces you switch to longtext, which can hold up to 2^32-1 in MySQL -- a loss of clarity and a waste of resources.
    While these limits may make sense for Access itself, they normally don't for actual relational databases.

Ideally, the *.PVDatabaseModel.xml file in conjunction with the *.PVEntityGenerator.xml should become the new single source of truth for PVEG. However, I'm not sure if it is possible to rebuild an ACCDB file from these XML files so the database design can still be changed using a GUI tool.

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
None yet
Development

No branches or pull requests

1 participant