Hm, unfortunately the only thing i can say im an expert in is IF THEN loops (referencing my DarkRP hud which is full of them),
If you are to officially support MySQL, I would recommend using the same modules DarkRP uses.
As for what to store, simply store anything that the server writes in its existing JSON mode (I assume thats how it saves it atm), and therefor dont actually use the database per say, but rather use it as a remote backup. In order for multiple servers to know which one is the latest version, simply add a datestamp to the information saved.
As for format, well thats simple.
Each table that contains ULX information (the default stuff) should be prefixed with ulx_ and should be named appropriately (ulx_permissions, ulx_groups, ulx_players, ulx_settings, etc).
On top of that, each ulx/ulib addon that would utilise this (and in theory, if you make it a module that actually dittos the information rather than modifying ULib or ULX, this would be harder but add support for future updates) would have their tables formatted as [shortandsweetaddonname]_[informationset]. Example: urs_ragdolls
And running back to the datestamp, ULib/ULX/whatever would stamp the time (similar to Utime) to a local file first, before taking that time (obviously not the current time at this point) and stamping it to a table called "miscellaneous" with 1 row per server, 2 columns. Column 1 (being the identifier) would be an identifier for the server. Something that makes that server stand out. Perhaps a unique ID that can be set by the coder/admin/owner. The second column would be lastupdated, containing the datestamp mentioned earlier of when that server last updated their local files. When each server is told to update (whether it be manual, scheduled, or on an event), they search through that table to find the most recent update, and if their local update is the same time as the remote database, then it wont sync. If local is older, take the remote copy. If the local is newer, update the remote copy.
Simple really! It's the most logical layout really. And given that the database is redundant, you do not have to worry about lack of connection. If there is no connection present, ULX wouldn't notice because it isn't even using the remote copy. Its only copying from the remote copy.
As for the stupid questions people ask, isn't that why you have the FAQs? To answer the stupid questions like "How do I use ulx adduser" or "Should I delete FAdmin from DarkRP even though FAdmin is supposed to work WITH ULX?"