Move latitude, longitude, elevation_m, elevation_datum, admin_area_1, admin_area_2, country onto the site row; drop Location's name/description/encoding_type (duplicated or hard-coded). Drop sampling_feature_type (always "Site"); rename sampling_feature_code to code and site_type to type. A site has one location - the join buys flexibility nobody has requested, and if location history ever becomes real it can be added as a new table without breaking anything. The SensorThings adapter keeps synthesizing Thing/Location/FeatureOfInterest.
Move latitude, longitude, elevation_m, elevation_datum, admin_area_1, admin_area_2, country onto the site row; drop Location's name/description/encoding_type (duplicated or hard-coded). Drop sampling_feature_type (always "Site"); rename sampling_feature_code to code and site_type to type. A site has one location - the join buys flexibility nobody has requested, and if location history ever becomes real it can be added as a new table without breaking anything. The SensorThings adapter keeps synthesizing Thing/Location/FeatureOfInterest.