>
Meus amigos, gostaria de saber como fazer os relacionamentos entre tabelas no SQLite. Eu tenho esse script:
SEU CODIGO AQUI
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.
Olá
Faça assim.
StringBuilder strSQL = new StringBuilder ();
strSQL.append("CREATE TABLE BLABLA");
strSQL.append(" (lala int, ");
strSQL.append(" (teste int) ");
E assim por diante, é só chamar append.
Para pegar o SQL depois: strSQL.toString();
E no caso dos relacionamentos?
Rafael, obrigado pelo retorno. Não seria melhor fazer assim:
private static String sql = "CREATE TABLE [clientes] ( [id] INTEGER PRIMARY KEY AUTOINCREMENT, [nome] [VARCHAR(30)], [email] [VARCHAR(40)], [endereco] [VARCHAR(50)], [numero] [VARCHAR(10)]);";
Rafael, obrigado pelo retorno. Não seria melhor fazer assim:
private static String sql = "CREATE TABLE [clientes] ( [id] INTEGER PRIMARY KEY AUTOINCREMENT,
[nome] [VARCHAR(30)], [email] [VARCHAR(40)], [endereco] [VARCHAR(50)],
[numero] [VARCHAR(10)]);";
Olá
O StringBuilder seria a melhor forma. O código fica clean.
Quanto ao ID na hora de fazer um join é só usar um alias.
Veja:
http://stackoverflow.com/questions/9370437/multiple-inner-join-from-the-same-table
Rafael, obrigado pelo retorno.
Não seria interessante utilizar constantes para os campos das tabelas?
Para sql muito grande não, ai o ideal seria o StringBuilder.
Rafael, obrigado pelo retorno. No meu caso, vou ter CLIENTES, TIPO_VEICULOS, VEICULOS, SERVIÇOS, HORÁRIOS E OS. Como seria esse StringBuilder num exemplo mais concreto?
Essas são minhas tabelas e campos:
Clientes
id
Nome
Endereco
Telefone
Celular
Email
Tipo_Veiculo
id
Descricao
Veiculos
id
id_cliente
id_tipo_veiculo
modelo
placa
Servicos
id
id_tipo_veiculo
Descricao
Valor
Horarios
id
Horario
OS
id
id_cliente
id_servico
id_horario
Data
Como você recomenda fazer?
Rafael, qual a melhor forma para gerar o script para essas tabelas. Poderia especificar aqui para uma só como modelo?
Poderia me ajudar?
Alguém?
Frederico,
É o mesmo formato, para cada tabela um stringbuilder.