Wrapping my head around EE I am more and more fascinated by its flexibility. Now a new demand arises and I am trying to evaluate the best way to go for the following kind of application. I know there is Search but can it really serve the purpose? Sorry, if it sounds like a too simple thing to ask …
Basically I would like to come up with a Database CRUD (create, read, update, delete) solution for different types of print and audiovisual media in our archives. Currently I have layed out a mysql database with some relations between a couple of tables. The “oldschool” next step would be creating php-scripts performing mysql statements on the database. We are collecting the data in local / shared spreadsheet at the moment, which of course can be imported into the database later on. So we are flexible of chosing the right database (full-text-based vs. relational) later on. The specs are: about 15 tables, where 2 of them with about 50 columns describing the metadata of the media hold the really large amount of entries (like several thousands per table, including large text excerpts for full text searches), the other tables are subsets for option lists (e.g. different unique print formats to choose from). Since this search should be used by just a small amount of users it would be so great to grant them access through managing users within EE.
What it comes down to: If I would use EE’s search add-on, can I still stick with an “external” database source and create performant search forms and results? Or would I have to import the data from the external database and stick with the “channel:entries” eco-system of EE in order to be able to search at all?
If you’re using ExpressionEngine’s native search module, you’d have to import the data into entries. That module is really just hard coded to search in the channel entries (and a tiny bit of members).
But, that wouldn’t preclude writing your own search module to search your external tables. I’m vague on whether you’re keeping the current external table structure or creating a module (and thus making the external tables third party internal ones) - but I don’t know that it matters a lot to rolling your own custom search module.
If you look at the native search module, you can get a good field for what you would need to do- though yours could most likely be considerably simplified.
Hope that helps generate some ideas.
Packet Tide owns and develops ExpressionEngine. © Packet Tide, All Rights Reserved.