I have a different item types, each item has different number of attributes some attributes might contain an arbitrary number of values. For example, a building which has
amenities attribute, this attribute has many different possible values a user should be able to select these values for the item
Building from a list. Some examples of these values are
Balcony, Pet Allowed, WiFi. Another item is
Car this car have different attributes like
Model, Speed, Class each of them has a single possible value.
In addition to
Attributes I have a different nested
Categories for each item, for example a
Vehicle category, is a parent of
Car category which is also a parent of
BMW Car category.
As you can see, the second requirement can be modeled easily for a
Relational Database but the first one is very hard to model for
Non-relational Database like
MongoDB. My app will be used by huge number of users, and both categories and attributes are subject to
Insert/Update/Delete operations also they may be involved in some reports generation process.
I think about using
DBMS, but I'm not sure yet about this decision.