Implementing a user-friendly search can be tricky, but it can also be done very efficiently. How do I know this? Not long ago, I needed to implement a search engine on a mobile app. The app was built on the Ionic framework and would connect to a CakePHP 2 backend. The idea was to display results as the user was typing. There were several options for this, but not all of them met my project’s requirements.
Any database architect designing a MySQL database faces the issue of selecting the proper storage engine. Usually, an application uses only one engine:MyISAMorInnoDB. But let’s try to be a little more flexible and imagine how different storage engines can be used.The Initial Data ModelTo begin, let’s build a simplified data model for a CRM (customer relationship management) system that we’ll use to illustrate the point. The design will cover the main CRM functions: sales data, product definitions, and information for analytics. It won’t contain details typically used in CRM systems.