Você sempre pode adicionar uma chave primária numérica simples (por exemplo, mysql auto_increment) para que você termine com um identificador exclusivo para cada linha. Chaves primárias compostas são um problema sério se você tiver que usar a tabela em um relacionamento de chave estrangeira, forçando você a listar cada um dos campos do componente da chave primária em todas as especificações de junção/FK. Em comparação, adicionar uma chave primária int simples reduz a necessidade de carregar um campo para os relacionamentos FK/join.
Sugiro algo na linha de:
patients (id, name, ....)
meds (id, brand, name, ...)
patient_meds (patient_id, med_id, dosage, ...)