Ok, for page types you can use page relationships (if you need both accessing products from feature and features from product) or pages field data type which is based on relationships under the hood (this will work well if you only need getting features for a product). The only drawback of using relationships for your case is that relationships are not extendable, i.e. you cannot introduce your custom fields into relationship. So that the relationship will store in your case only ProductID and FeatureID.
Other option would be creating your own custom class to store this relation but it will require quite a lot of custom steps to do:
- create module custom class to store relationships with your required custom fields
- create a form control to select related features and products in admin
- write some code to retrieve related features and products