The second approach is a no-no IMHO. The media_url and media_type attributes must be unique in the database. Otherwise you risk duplication and synchronization problems.
Ex of problems with model no2:
- One media is linked to Company 1. Its type is "video".
- The same media (i.e. URL) is linked to Property 1. It's type is "blog".
- What happens now if you want a list of all media and their types? Which one would you take?
- And you have to query 2 tables which is inefficient.
I see 4 tables here. Company, Property, Media and MediaType. A media type should also have it's own table, to avoid duplication.
Hence:
Company
idCompany
CompanyName
Property
idProperty
PropertyName
Media
idMedia
MediaURL
idMediaType, FK to MediaType
MediaType
idMediaType
Type
And link tables:
Property_has_Media
idProperty
idMedia
Company_has_Media
idCompany
idMedia
Model:

This structure would be what I suggest if one media is never linked to both a Company and a Property. From your question this is what I understand. And conceptually, a media does not define a link between a Company and a Property, so having 2 separate link tables makes more sense. It will also avoid the "IS NOT NULL" all over your queries.