Let's say I have n categories of "means of transport" I need to display on my site (aircrafts, cars, bikes...). They share a lot of attributes like "name", "weight", "manufacturer" etc. But each of them also has a small number of distinct attributes that they do not share with others (e.g. only an aircraft has an attribute "wingspan").
I've addressed this myself and seen this issue in related questions here, here and here (and many more) and I do understand that opinions vary as there is (probably) no definite right or wrong answer.
However, I'm still wondering if there exist Drupal-based pros and cons (in terms of performance, maintainability) instead of pure personal preferences for planning your content model one or the other way.
Approach 1: My first thoughts were similar to the following approach, which does not appear to be the optimal use case for the paragraphs module:
- 1 content type "means_of_transport" with a set of basic fields (name, manufacturer, weight...) that are shared by all.
- 1 field that references a taxonomy X with terms "bike", "car", "aircraft"... to tag each piece of content.
- n fields that each reference a different paragraphs type, containing all the fields that are specific to a certain piece of content (e.g. the "wingspan" & "call_sign" compound field for aircrafts)
This results in 1 content type with n paragraphs types. As Hudri and Kevin already pointed out there does not seem to be much benefit in just shifting the complexity from content types to paragraphs types.
Approach 2:
- n content types "bike", "aircraft"... with all the attributes (fields) that are shared between them being reused, so that you don't need to create a new field for "name", "weight" etc. each time, but also each content type having a few unique fields that are specific to it.
Let's say I'll go with approach 2 and n=50 content types and each means of transport only has 1 unique attribute, all the other ones are shared and their fields could be reused. To me that seems very inefficient and often you read one should try to reduce the number of content types when planning your site. But maybe that's the Drupal way to do it and by reusing most of the fields you do not create too much overhead anyway.
Is there any other possible solution to "reuse existing content types with different fields" as also indicated in this answer by Jaypan?
Again, I'm interested in facts that support one or the other approach (and I'm aware they might not exist at all and it comes down to personal taste).