I’m interested in this same question. In particular, if the data is claims data where absolutely everything ties back to a visit_detail record representing a claim line (and a visit_occurrence record representing some courser grain), does it make more sense to link cost to visit_detail instead of drug_exposure? This would be sort of making a hub-and-spoke where visit_detail is the hub and all the other tables connect back to that.
If the cost table links directly to drug_exposure, or condition_occurrence, procedure_occurrence, etc., then that seems potentially confusing. If someone was starting at visits and wanted to see cost info, they’d have to join to at least 3 other tables (drug_exposure, condition_occurrence, procedure_occurrence) first, then join to the cost table 3 times (1x per exposure/occurrence table). That seems like a less straightforward setup than routing all relationships through visit.
Approach (A) always join cost to visits seems like it aligns with advice from @Gowtham_Rao on this thread proposing the use of pseudo-visits for cost records from claims data.
It seems like other guidance I’ve seen, though, is for approach (B) of linking cost to drug_exposure/condition_occurrence/procedure_occurrence/etc. and I’m unsure which is the preferred approach.