Como projetar tabela com chave primária e atributo com vários valores?
Estou interessado em design de banco de dados e agora estou lendo a literatura correspondente. Através do livro, eu enfrentei um exemplo estranho que me faz sentir incerto. Existe uma relação
Nesta tabela, temos uma chave primária composta (StudentID, Activity). Mas ActivityFee é parcialmente dependente da chave da tabela (Activity -> ActivityFee), então o autor sugere dividir essa relação em duas outras relações:
Agora, se dermos uma olhada em STUDENT_ACTIVITY, Activity se tornará uma chave estrangeira e a relação ainda terá uma chave primária composta.
Temos a tabela na qual as colunas inteiras definem uma chave primária composta, tudo bem?
Caso contrário, o que devemos fazer neste caso? (provavelmente define uma chave substituta?)
Qual é uma boa maneira de lidar com atributos com vários valores (atividade no nosso caso) para eliminar possíveis anomalias de dados?