Como representar na base de dados (android sqlite), uma classe que extende outra?

Olá, Estou a trabalhar em android, tenho um caso em que uma tabela extende outra.

exemplo:

tabela Exercicio -> String dataInicio, String descrição …etc

tabela Futebol -> String horaInicio, Int duracao…etc

Futebol extends Exercicio

e não sei como a representar na base de dados (sqlite) a tabela “Futebol”, visto que tenho de ter associado à tabela “Futebol” a dataInicio da tabela “Exercicio”.

Agradeço que me ajudem. Obrigado.

Não seria uma chave estrangeira? "foreign key"
A foreign key serve para referenciar um valor que está contido em outra tabela, te dando a possibilidade de “linkar” uma tabela a outra.
Pesquise um pouco mais a respeito e veja se soluciona o seu problema, é algo bem simples.

Sim eu pensei nessa possibilidade obrigada, mas fiquei na duvida se devia mesmo fazer assim :slight_smile:
Extends é diferente de many-to-one, daí a minha duvida…

Não sei se isso seria uma dúvida sua, mas Extends e many-to-one são coisas totalmente distintas, o Extends como o próprio nome diz, é utilizado para estender uma classe (Conceito de Herança), ou seja, permite que a classe filha herde tudo o que está contido na classe pai.
Já o many-to-one é uma relação para mapeamento de relacionamento entre classes.

Mas a dúvida dela é em relação a uma tabela do banco de dados e não a classe em si.

1 curtida

Vai armazenar o Exercicio na base de dados? Ou só as classes que a estendem (como futebol)? Se não vai armazenar exercício diretamente, não precisa de uma tabela pra ela, só para Futebol.

Você pode pensar de forma diferente para a base de dados. Ainda que Futebol estenda Exercicio no código, o Futebol é um tipo de exercício, então poderia ser apenas uma tabela de tipos/categorias (com futebol, vôlei, basquete, tênis, etc) e a tabela principal ser exercício, com uma chave estrangeira apontando para o tipo.

Abraço.

1 curtida

1- Nao existe herança em base de dados relacional e sql, portanto falar em tabela estender outra não faz sentido.

2- Nao é necessário banco de dados relacional e sql para desenvolver apps Android.

Obrigado a todos pela ajuda!