My initial thought it that they're not really tightly coupled; instead, it's more that there's a single point of coupling (via the foreign key to the banner variation), and all other points of coupling are just convenient shorthand; I could also do something like `link.banner.is_text_banner` and just add these methods to the classes.

But then again, the fact that I have all these shortcuts does indicate a stronger link than _just_ a foreign key. 

In either case, a class comparison is IMO better than a class name check, as the class name comparison just covers up the possible tight coupling.