![]() |
![]() |
![]() ![]()
Post
#1
|
|
Grupa: Zarejestrowani Postów: 566 Pomógł: 35 Dołączył: 21.06.2006 Ostrzeżenie: (0%) ![]() ![]() |
Witajcie!
Idea jest prosta, mam tabelę grup wyglądającą tak: (IMG:http://wstaw.org/m/2011/03/17/Screen_shot_2011-03-17_at_21.31.38.png) Jak pewnie każdy się domyśla pole isDef gdy jest równe 1 mówi skryptowi, że dana kategoria jest domyślną. Problem jest taki, że użytkownicy to kombinatorzy i nawet jak zabezpieczam to od kodu ktoś może grzebać w sqlu (lub któryś plugin). Chciałbym od strony sqla zabezpieczyć to tak, aby "1" nie mogło wystąpić więcej niż raz. Zwykłe unique tu nie zadziała bo zera przecież mogą się powtarzać. |
|
|
![]() |
![]()
Post
#2
|
|
Grupa: Zarejestrowani Postów: 6 476 Pomógł: 1306 Dołączył: 6.08.2006 Skąd: Kraków Ostrzeżenie: (0%) ![]() ![]() |
PHP w to nie wciągaj. PHP to książkowy przykład burdelu spowodowanego tym, że każdy robił jak chciał. Pomijamy fakt, że obecnie PHP jest w fazie przejściowej, tj. cały nowy kod powinien być pisany wg notacji camelCase.
Cytat idąc tym tropem wg. mnie powinno się pisać w całym projekcie w jeden sposób (baza danych jest częścią projektu, right?). Kod PHP pisze się inaczej, kod CSS pisze się inaczej, kod XML pisze się inaczej, kod YAML pisze się inaczej, kod SQL pisze się inaczej, kod Javy pisze się inaczej, kod Basha pisze się inaczej - wszystkie pisze się inaczej mimo iż nie ma najmniejszego problemu by wystąpiły wszystkie w jednym projekcie.Cytat Kolejna sprawa - nie nazwałbym SQLa językiem - formalnie się do nich zalicza ale nie pisze się w nim jako takich funkcji, pętli, przekształceń (a bynajmniej nie powinno się - jest to możliwe ale wciąż trzeba pamiętać, że to BAZA danych a nie PREPROCESOR danych). Język SQL jest pełnoprawnym deklaratywnym językiem programowania w którym występują przekształcenia, pętle czy funkcje (no, te ostatnie to raczej zaliczają się do rozszerzeń SQLa, ale ogólnie przyjmuje się to wszystko za jedność). Nie wiem też co tutaj mają preprocesory do rzeczy.W skrócie: nie rób burdelu i dostosuj się do ogólnie przyjętych konwencji. |
|
|
![]()
Post
#3
|
|
Grupa: Zarejestrowani Postów: 566 Pomógł: 35 Dołączył: 21.06.2006 Ostrzeżenie: (0%) ![]() ![]() |
Faktycznie skończymy już temat cc/us - do niczego nie dojdziemy (IMG:style_emoticons/default/wink.gif)
Jeśli chodzi o język SQL to nie odpuszcze swojej racji - owszem, można w nim pisać pełnoprawny kod ale nie do tego on służy! Od przetwarzania danych mamy stronę aplikacji a nie bazę danych. Dużo lepszym wyjściem jest pobranie w prostrzy sposób nawet nieco większej porcji danych i przetworzenie jej po stronie PHP niż pisanie zapytania które na zwrócenie wyniku potrzebuje kilku sekund. Baza służy do gromadzenia i zwracania danych a nie do obróbki danych - tyle w temacie. |
|
|
![]() ![]() |
![]() |
Aktualny czas: 12.10.2025 - 17:38 |