With these it helps You can try keeping the features out of the user table. It will keep you out of the mess after your application has more features. User Table - your user details, Primary Key - user_id.
With these it helps I would definitely go with a more flexible solution of having a has_many relationship with features. Then you can easily call @product.features to get the products features and the flexibility really shines when you want to do something like assign multiple attributes to screen. If you are throwing hashes into your database you wouldn't be able to add two attributes (easily anyways) to screen. Say you wanted @product.features[:screen] to show IPS of TFT in the future as well as size, then you would have to have nested hashes or something else that would be really ugly to process.
How does buying an app to enable paid features of another app work?
will help you The easiest way is to use startActivityForResult(...) from app A against an Activity of app B, that must be configured with an IntentFilter in order to be used from an outer app. Inside the B called activity you can also check who's calling with getCallingActivity(). You can find an example here. Before starting the Activity, you can test that B is installed (using the PackageManager) or you can just start the activity and catch the Exception.
Do I have to provision a paid database in IBM cloud in order to use Watson OpenScale's features?
will be helpful for those in need I need to create a free and paid account setup on my android app. Free data is stored in room db. And when paid user is logged in I need to deliver paid data to app and user can access paid data in offline. Both paid and free data is synced from firestore. How to setup these things in android? Please help and sorry for my English. , There are 2 scenarios in your question.