I apologize if this might be a rather beginner-level-question.
For my database design, I have worked out multiple options but cannot decide on which one I should implement. I am using 10.4.17-MariaDB
.
The basic idea:
I have a Table called Article
in which I want to store simple fields such as name
(e.g. varchar), description
(e.g. varchar), ..., etc. also more complex information like Producer
, Price
and so on.
I have worked out the following:
Implementation I (using just a FK)
Table: Article | id (auto_inkr.) | fk_producer | ... | | --------------- | ----------- | --- | | 1 | 1 | ... | | 2 | 1 | ... | | 3 | 2 | ... | | ... | ... | ... |
As defined, Producer(id: 1)
, is the Producer of Articles (1, 2, ...?)
.
Implementation II (using a lookup table)
Table: Article | id (auto_inkr.) | fk_article_producer | ... | | ----------------- | ------------------- | --- | | 1 | 1 | ... | | 2 | 1 | ... | | 3 | 2 | ... | | ... | ... | ... |
Table: Article Producer | id (auto_inkr.) | article_fk | producer_fk | | ----------------- | ----------- | ----------- | | 1 | 1 | 1 | | 2 | 2 | 1 | | 3 | 3 | 2 | | ... | ... | ... |
In this case here, I have implemented a mapping table. This would also allow me to have a many-to-many
configuration. I don't have to implement it that way - it is up to my backend-code how I store the data.
Questions
Please keep in mind, that my Article
table as of now will have like 7+
dependent tables (as shown in the example here: e.g. Producer
). I want to design it, so I can write an efficient filter-function (query) for my text- respectively tag-based-search
later on.
- Which design should I choose and why?
- What are the benefits or downsides of these approaches (best practice)?
Article
in this context and what is aProducer
?