Hey,
in strapi you can create your relations easily within the strapi UI / admin panel. In the background a many to many relation is created like you mentioned - with some mapping tables. What you do in strapi (code) later is a sth like
strapi.db
.query("api::house.house")
.findOne({where: {features: id}})
Strapi abstracts this and you never need to know or even create mapping tables / joins.
I hope that answered your question