I agree with David Browne's answer and Lamak's comment. They helped me a lot to do my analysis. As Lamak mentioned in his comment, such a model is known as an [EAV model][1]. Although the EAV model may not break any normalization rules, it should mostly be used to model entities where the number of attributes (properties, parameters) that can be used to describe them is potentially vast, but the number that will actually apply to a given entity is relatively modest. EAV models are an efficient way to store data, but they are inefficient and difficult to query. In situations where the the **domain's entities have well defined attributes**, a [Relational model][2] is far more superior and desirable. When such a model is implemented in a [RDBMS][3], users can leverage powerful RDBMS features like efficient storage techniques and powerful querying abilities. [1]: https://en.wikipedia.org/wiki/Entity%E2%80%93attribute%E2%80%93value_model [2]: https://en.wikipedia.org/wiki/Relational_model [3]: https://en.wikipedia.org/wiki/Relational_database