Client has a database with millions of records on teacher and public employee salaries over the past 10 years for Ohio. They want to redesign their website and move it to WordPress -- any suggestions?
Well first off I wouldn't recommend trying to power your client's database with the standard WordPress database instance. They can use WordPress for the website all they like. But with millions of records like that, you really don't want to move those data in with WordPress.
For that matter, you're probably gonna want a dedicated database server to answer those questions, if the client doesn't already have one. You might also need to investigate something like Elastic Search, depending on what your search requirements are and what sort of database they are using (pay close attention to whether or not it provides full text search ability).
Beyond that, and somewhat obviously, you're also gonna want SSL on the website and to make sure you're up to date on federal and state privacy requirements for data like this, as well as best practices for securely transferring data over the web (port configuration, ssh keys, etc).
The privacy concerns would raise a flag for me. If those data have anything personally identifiable in them - which they very probably do - then you're really gonna want to make sure you do your research on security of personally identifiable information. Government specific privacy /security /auditability requirements may also apply, so double check that too.
You need to hire a WordPress consultant to help you with that. If you email me at http://bradt.ca/contact/ with an approximate budget, timeline, and details about the project, I can forward it to freelance consultants I know.
It's not clear from your question, but I'm assuming your client wants a frontend built in WordPress for this data. So assuming you'd be building a custom plugin.
Depending on the data structure, it may be best to keep this data in its own tables - within the same WP database if you like.
You can indeed create custom post types in WordPress and store any kind of data. But you may hit performance bottlenecks when you want to perform searches or want data in particular format.
We've built and tested some of our plugins with millions of rows of data. When we need higher performance, we've used our own tables inside WP. Rather than relying on WP's core data structures.
Hope this helps. And I'd be happy to answer any specific questions you may have.
I would advise for such a monster DB to keep it external to wordpress. Use elasticsearch for the DB and create an external service/api to be accesible from the WP site.