frytek92
6.02.2011, 23:49:46
Witam mam taki problem, mam baze danych której często robie modernizacje i mój problem polega na tym że przy każdej modernizacji musze skakać po kodzie i zmieniac zapytania SQL, myśle o takim rozwiązaniu ale nie jestem za bardzo do niego przekonany czy jest sens? czy może jest jakaś inna metoda
Przykład :
<?php
class sql_action extends sql_core {
public function ranking_insert($values){
$this->query("INSERT INTO `user` (`login`) VALUES ('{$values['login']}')");
}
}
}
Pozdrawiam i licze na odpowiedź
prachwal
9.02.2011, 23:45:24
Niestety, jeśli robisz częste modernizacje, to skakania po kodzie nie unikniesz. Równie dobrze mógłbyś pytać, co zrobić by uniknąć przebudowy budynku, bo często zdarza Ci się demontować ściany nośne. Co najwyżej możesz dążyć do minimalizowania liczby miejsc, w których coś trzeba zmienić, a można to osiągnąć po prostu poprzez odpowiednią organizację kodu tak, by rzeczy związanie np. z X były w jednym miejscu, z Y - w drugim itd. W ten sposób nawet jeśli jakaś operacja będzie wykonywana w różnych miejscach, jej implementacja będzie jedna i trzeba będzie zmienić tylko ją.
PS. class sql_action extends sql_core - litości, człowieku, zastanów się przez chwilę nad tym, po czym dziedziczysz... Akcje po systemie komunikacji z bazą danych? Przecież to nie ma żadnego sensu!
Pilsener
11.02.2011, 09:27:45
Jak sobie kod organizujesz, tak potem się stresujesz. Logika modeli w wypadku bazy jest dość oczywista: jedna tabela = jeden model. Model nazywa się tak jak tabela w bazie i ma taką też lokalizację w folderze /models. Przykład: masz tabelę page_comments, plik comments.php znajduje się w folderze /models/page a nazwa klasy to model_page_comments. Nazwy metod także powinny podlegać pewnym standardom. W ten sposób ładnie nam się rozwija lista klas (a po wybraniu klasy metod) w przeglądarce obiektów, po wpisaniu "new model_" lista modeli, po "new model_p" lista modeli zaczynających się na "p", niczego nie trzeba szukać i do wszystkiego łatwy dostęp.