T
T
topuserman2020-10-20 20:00:06
MySQL
topuserman, 2020-10-20 20:00:06

Document-oriented or relational database (for my task)?

I need to develop a server cabinet configurator.
Choice of dimensions, material, ..., corresponding to the dimensions of the door, shelves, etc.
each entity may have fasteners, hardware, etc.

In addition to the business task, it is also known that sometimes new types of doors may appear (with their own characteristics - for example, let it be a Lock), and the configurator will need to be finalized so that after the door selection stage, we can specify which lock we need for the selected doors.

About doors, wrote for an example.

I want to design everything in such a way as to minimize labor costs when expanding the functionality, and I didn’t have to redo the database.

I know how to do it on a relational database, but I also understand how difficult it will be to expand the functionality, add new entities, etc.

Thought that maybe in this case, it would be more appropriate to use a document-oriented database? I have no experience with this type of database. therefore there were such questions:

1. whether such type of a DB is suitable for my task?
2. I read that in a document-oriented database it is problematic to select selections with joins (join).
Is it true ? if so, what if I have many types of documents, for example:
- cabinet base - cabinet
walls - cabinet
doors - cabinet
shelves
- ...

Is it really necessary in this case to make N-requests to the database and alternately request data from different types of documents?

Answer the question

In order to leave comments, you need to log in

2 answer(s)
M
Max, 2020-10-21
@topuserman

you can store everything in one collection:

{
   "type": "полка",
   "size":{
      "width": 45,
      "height": 34
    }
}

{
   "type": "стена",
   "size":{
      "width": 11,
      "height": 500
    },
    "holes": 3
}

so mongoDB is suitable for storing the "zoo" and searching through it.
if there are links to other tables, there may be problems, because JOINs are not easy to do.
it is better to estimate the data structure with links and then it may be clearer

I
Ivan Shumov, 2020-10-20
@inoise

To answer, you just need to decide on the level of normalization, transaction boundaries and the structure of system objects.

Didn't find what you were looking for?

Ask your question

Ask a Question

731 491 924 answers to any question