1
resposta

Relacionamento entre tabelas no SQLite

Olá. Estou com um dúvida, que acredito seja sobre relacionamento de tabelas. Vamos ao exemplo...

Digamos que o invés de termos uma lista de alunos, tivéssemos uma lista de turmas e a partir de cada turma pudéssemos ir adicionando alunos. Criamos o BD ESCOLA, com as tabelas turmas e alunos. Criaremos a turma A e adicionaremos os alunos 1,2 e3. Criaremos a turma B e adicionaremos os alunos 3, 4 e 5. Minha dúvida é: como fazer para a activity Listar Alunos filtre os alunos de turma clicada? Fui claro?

1 resposta

Fala Rogério, tudo bem ?

Nesse seu caso existem algumas alternativas.

A mais simples, porém mais trabalhosa é criar uma entidade TurmaAlunos que teria basicamente os ids como chave estrangeira da turma e do aluno. Assim você teria que fazer uma busca por id da turma e viria todos os ids dos alunos.

Outra alternativa é você usar o relation, que é uma outra annotation disponível na lib, ficaria algo assim:

 @Entity
 public class Song {
     @ PrimaryKey
     int songId;
     int albumId;
     String name;
     // other fields
 }
 public class AlbumNameAndAllSongs {
     int id;
     String name;
     @Relation(parentColumn = "id", entityColumn = "albumId")
     List<Song> songs;
 }

 @Dao
 public interface MusicDao {
     @Query("SELECT id, name FROM Album")
     List<AlbumNameAndAllSongs> loadAlbumAndSongs();
 }

Acho que talvez esse post aqui possa te ajudar a entender melhor também