Olá Amigos, e a minha primeira postagem aqui no forum, estou iniciando com
kohana e já venho com diversas dúvidas, apesar de ter pesquisado na internet
não encontrei muita referencia sobre isso.
Abaixo enviei um sql exemplo do quais convivo diariamente. Vejam que no sql
eu tenho diversos inner e left, e a casos em que eu cruzo duas vezes a mesma
tabela com campos diferentes.
Perguntas:
Vejam que as minhas tabelas tem sempre um prefixo "aca_", quando tento criar
o model com este nome não da certo, por causa do anderline, para dar certo
eu mudo o nome de aca_cursos para acacursos, ai da certo só que dai tenho
que especificar no model os seguintes dados:
protected $primary_key = 'codcurso'; // tenho que mudar de id para cod+
o nome da tabela no singular, pois e o nosso padrão.
protected $_table_name = 'aca_cursos';
1 - E isso mesmo? Existe outra forma de fazer isso?
2 - Não gostaria de criar em cada model os relacionamentos pois nem sempre e
a mesma coisa, a casos em que eu tenho que cruzar a mesma tabela com campos
diferentes. Existe uma forma de fazer o relacionamento no momento em que
está montando a consulta?
3 - Em meu sistema completo não tenho nenhuma chave primaria como ID e sim
adoto as seguintes convenções.
Tabelas: plural
Campo chave: iniciado com cod + o nome da tabela no singular
Sempre vou ter que especificar qual é a chave primaria?
Tenho mais perguntas mas vou deixar só estas por enquanto senão vocês vão me
expulsar da lista hehehe,
Obrigado a todos.
-- SQL EXEMPLO
SELECT r.codresumonotasfaltas as mat_situacao, r.codresumonotasfaltas as
codmatricula, t.codturma, d.coddisciplina, gd.periodo, t.nome as nometurma,
d.nome as nomedisciplina, de.nome as disciplinaespecial, gde.periodo as
periodoespecial, cur.nomeabreviado as nomecurso, if(
me.coddisciplinacorrespondente is null, 0, me.coddisciplinacorrespondente )
as coddiscespecial, t.codturmareal
FROM aca_resumonotasfaltas r
LEFT JOIN aca_matriculaespecial me ON r.codturma = me.codturma AND me.ra =
r.ra
LEFT JOIN aca_disciplina de ON me.coddisciplinacorrespondente =
de.coddisciplina
LEFT JOIN aca_gradesdisciplinas gde ON de.coddisciplina = gde.coddisciplina
AND gde.codgrade = 95 AND gde.statusreg = 1
INNER JOIN aca_turma t ON r.codturma = t.codturma
INNER JOIN aca_disciplina d ON t.coddisciplina = d.coddisciplina
INNER JOIN aca_cursos cur ON d.codcurso = cur.codcurso
LEFT JOIN aca_gradesdisciplinas gd ON d.coddisciplina = gd.coddisciplina AND
gd.codgrade = 95 AND gd.statusreg = 1
WHERE r.situacao <> 8 AND t.anosemestre = 201102
AND r.ra = '33010808556'
ORDER BY d.nome, t.nome
--
Atenciosamente,
Paulo Cesar Garcia
55 45 9940-6611
--
Você está recebendo esta mensagem porque se inscreveu no grupo "Kohana Php" dos
Grupos do Google.
Para postar neste grupo, envie um e-mail para [email protected].
Para cancelar a inscrição nesse grupo, envie um e-mail para
[email protected].
Para obter mais opções, visite esse grupo em
http://groups.google.com/group/kohana-php?hl=pt-BR.