Relacionamento no Sqlite
21/06/2013
0
private static final String DATABASE_CREATE_CARROS = "create table " + DATABASE_TABLE_CARROS + " (" + KEY_ID_CARRO + " integer primary key autoincrement, " + KEY_IDCLIENTE_CARRO + " integer, " + KEY_IDTIPO_CARRO + " integer, " + KEY_MODELO + " text, " + KEY_PLACA + " text, FOREIGN KEY ( " + KEY_IDCLIENTE_CARRO + " ) REFERENCES " + DATABASE_TABLE_CLIENTES + " (" + KEY_ID_CLI + " ) ON DELETE RESTRICT ON UPDATE CASCADE , FOREIGN KEY ( " + KEY_IDTIPO_CARRO + " ) REFERENCES " + DATABASE_TABLE_TIPO_CARRO + " (" + KEY_IDTIPO_CARRO + " ) ON DELETE RESTRICT ON UPDATE CASCADE);";
O que poderia fazer para esse script ficasse mais claro e visível? Notem que tenho 2 relacionamentos.
Frederico Brigatte***
Posts
23/06/2013
Marcelo Senaga
private static final String DATABASE_CREATE_CARROS = "create table " + DATABASE_TABLE_CARROS + " (" + KEY_ID_CARRO + " integer primary key autoincrement, " + KEY_IDCLIENTE_CARRO + " integer, " + KEY_IDTIPO_CARRO + " integer, " + KEY_MODELO + " text, " + KEY_PLACA + " text, FOREIGN KEY ( " + KEY_IDCLIENTE_CARRO + " ) REFERENCES " + DATABASE_TABLE_CLIENTES + " (" + KEY_ID_CLI + " ) ON DELETE RESTRICT ON UPDATE CASCADE , FOREIGN KEY ( " + KEY_IDTIPO_CARRO + " ) REFERENCES " + DATABASE_TABLE_TIPO_CARRO + " (" + KEY_IDTIPO_CARRO + " ) ON DELETE RESTRICT ON UPDATE CASCADE);";
O que poderia fazer para esse script ficasse mais claro e visível? Notem que tenho 2 relacionamentos.
Tem uns frameworks ORM para Android:
http://www.ubiratansoares.com.br/blog/2012/12/consideracoes-sobre-android-e-orm/
25/06/2013
Marcelo Senaga
Eu vi que você está criando as tabelas "na mão", via comando SQL. É como todo mundo faz. Mas existe esses ORM´s para Android, caso você queira algo mais sofisticado, no estilo do Hibernate. (claro, com certas limitações).
25/06/2013
Joel Rodrigues
25/06/2013
Frederico Brigatte***
25/06/2013
Frederico Brigatte***
25/06/2013
Frederico Brigatte***
25/06/2013
Joel Rodrigues
Com relação ao campo Id, todas as suas tabelas podem ter um campo Id ou com qualquer outro nome, o que não pode é ter dois campos iguais na mesma tabela.
25/06/2013
Frederico Brigatte***
25/06/2013
Frederico Brigatte***
Tabela Clientes:
private static final String DATABASE_CREATE_CLIENTES = "create table " + DATABASE_TABLE_CLIENTES + " (" + KEY_IDCLI + " integer primary key autoincrement, " + KEY_NOME + " text, " + KEY_ENDERECO + " text, " + KEY_TELEFONE + " text, " + KEY_CELULAR + " text, " + KEY_EMAIL + " text);";
Tabela Carros:
private static final String DATABASE_CREATE_CARROS = "create table " + DATABASE_TABLE_CARROS + " (" + KEY_ID_CARRO + " integer primary key autoincrement, " + KEY_IDCLIENTE_CARRO + " integer, " + KEY_IDTIPO_CARRO + " integer, " + KEY_MODELO + " text, " + KEY_PLACA + " text, FOREIGN KEY ( " + KEY_IDCLIENTE_CARRO + " ) REFERENCES " + DATABASE_TABLE_CLIENTES + " (" + KEY_ID_CLI + " ) ON DELETE RESTRICT ON UPDATE CASCADE , FOREIGN KEY ( " + KEY_IDTIPO_CARRO + " ) REFERENCES " + DATABASE_TABLE_TIPO_CARRO + " (" + KEY_IDTIPO_CARRO + " ) ON DELETE RESTRICT ON UPDATE CASCADE);";
Tabela Tipo Carros:
private static final String DATABASE_CREATE_CARROS = "create table " + DATABASE_TABLE_CARROS + " (" + KEY_ID_CARRO + " integer primary key autoincrement, " + KEY_IDCLIENTE_CARRO + " integer, " + KEY_IDTIPO_CARRO + " integer, " + KEY_MODELO + " text, " + KEY_PLACA + " text, FOREIGN KEY ( " + KEY_IDCLIENTE_CARRO + " ) REFERENCES " + DATABASE_TABLE_CLIENTES + " (" + KEY_ID_CLI + " ) ON DELETE RESTRICT ON UPDATE CASCADE , FOREIGN KEY ( " + KEY_IDTIPO_CARRO + " ) REFERENCES " + DATABASE_TABLE_TIPO_CARRO + " (" + KEY_IDTIPO_CARRO + " ) ON DELETE RESTRICT ON UPDATE CASCADE);";
Gostaria de deixar mais visível e limpo o código. Já tenho pronto.
25/06/2013
Joel Rodrigues
Escreva o script completo, já com os nomes das colunas e verá que parecerá mais claro.
Clique aqui para fazer login e interagir na Comunidade :)