In this thread I need a link from base table to join table it was suggested that it is better in Drupal to join two entities with a multi-value entity reference field than to use a relational style join table to join them (assuming many to many relationship). But, what about the case where there is a property of the association. E.g., stories win awards, but each award is or may be granted every year. So, in a relational design, one would use a join table to link a particular story with the award it had won and put the year into the association. What is the Drupal Way to do this with a multi-value entity reference field?
First, there is no Drupal way. Drupal is flexible and the same result can be achieved in many ways. If you feel comfortable using join tables, go for it. In the other thread OP wanted to use a relation between entities in View, what entity references offer out of the box, where a join table would not. Therefor that was suggested.
For a situation where a relation needs to have properties on its own, you might want to look into the Relation module. It provides a relation between two entities, but the relation can have properties (fields) on its own (such as as year).
I just don't know how stable the module is for Drupal 8, but it works great in Drupal 7.
Update after the question of Asy:
The entity principle in Drupal 8 is similar to 7, so it would not change the answer much, except that the relation module for Drupal 8 is not yet finished. The problem with this specific question is that the answer is spread over 3 different posts. The combined essense is: nodes are pretty 'resource heavy' entities, as they invoke access checks, path aliasing, etc. Using them just to attach a property to a 'relation' works, but consumes more resources than a system that was designed to do just this (the Relation module, which for instance avoids the node access check and path aliasing on the in-between node). Especially when combining 3 nodes with 2 fields, this becomes SQL heavy too. Nothing SQL can't handle, just don't do it too often. So in the end is all depends on the application. If this is not a page that gets much views, you might not even notice it.
A better alternative (but I did not test nor benchmark this) might be to create a custom entity using the ECK (Entity Construction Kit). These entities are presumably lighter than nodes. Combined with Drupal 8's default entity referencing and something like Inline Entity Form to fill the field on the relation could make quite a nice interface.
In the end however you still need to join like this:
Node > entity reference field > ECK entity > entity reference field > node v v v fields fields fields
Where the relation module (if finished) would offer something that probably looks more like this:
Node > relation > node v v v fields fields fields