I want to design and implement a mobile application in which:
- Every user who have already registered is able to add new news (including title: text plus a picture, and content: long text, pictures or even videos).
- Users can scroll hot news (from the News Page) and make decision to read one. They might press the like button. The news which has more likes displayed sooner.
- Users are able to add/delete some items (human skills) in their profile page. Skills are categorized hierarchically: each leaf of the skills tree has its specific fields in addition to shared ones.
- All users' skills can be searched or filtered in a different page of the application.
- Users can also send messages to each other.
Which type of database is better for this application? rdbms (like MySQL)? or NoSQL (document databases)? or a hybrid structure (for example MySQL for storing items and MongoDB for storing news)? Besides, which method is more common to store pictures and long texts on the back-end side? Please, consider that we have limited money to buy great resources but we still expect high performance.