MySQL kezdõ

Kezdőlap Fórumok Programozás MySQL kezdõ

10 bejegyzés megtekintése - 41-50 / 73
  • Szerző
    Bejegyzés
  • #2062855
    chris19
    Felhasználó

      Van egy forrásból fordított MySQL szerverem (4.1.21) és egy olyan problémám volna, hogy az adatbázisba tett ékezetes betűk elvesznek, pedig direct úgy fordítottam, hogy a default charset latin2 és a collation latin2_hungarian_ci. Ez mitől lehet?

      #2062856
      kayapo
      Felhasználó

        Hogyan hoztad létre az adatbázist?
        Próbáld meg ezt:

        Code:
        mysql> show variables like ‘%char%’;

        Ez megmutatja a karakterkódolással kapcsolatos változókat

        #2062857
        MyCroft
        Felhasználó
          chris19 wrote:
          Van egy forrásból fordított MySQL szerverem (4.1.21) és egy olyan problémám volna, hogy az adatbázisba tett ékezetes betűk elvesznek, pedig direct úgy fordítottam, hogy a default charset latin2 és a collation latin2_hungarian_ci. Ez mitől lehet?

          Lehet h butaságot mondok, de ha jól tudom 4.x-es MySql-től a latin2 csak úgy működik rendesen, ha a connect után kiadod a következő parancsot:
          SET NAMES latin2

          Azt nem tudom, hogy pontosan melyik verziótól kezdve kell, de az biztos, hogy 5.0-nál nekem csak ezzel volt hajlandó rendesen kezelni az ékezeteket.

          #2062858
          chris19
          Felhasználó

            Szia,

            Igazad volt. SET NAMES latin2.
            Mert enélkül ugyan ment, csak az „ű” „ő” betűk nem mentek.
            Nagyon köszi a segítséget.

            #2062859
            Wait
            Felhasználó

              Szerbusztok!

              Egy portálon belüli üzenetküldő rendszert csinálok, php a feldolgozó, MySQL az adatbázis. Azt akarom elérni, hogy a még nem olvasott leveleknél figyelmeztessen, ha én törlök egy levelet, az a feladónál megmaradjon, és fordítva.
              Tulajdonképp az egész szkript annyi, hogy beírja a MySQL-be, ahonnan aztán olvassa a php.
              A kérdés a következő: mi a gyorsabb? Ha a feladó, címzett, időpont, levél tartalma tábla mellé csinálok még egy oszlopot, ahol 0-7-ig lehetnek az értékek, ha 1 – küldő törölte, ha 2 – címzett törölte, ha 4 – még nem olvasta, tehát úgy megvalósítani, mint a UNIX-jogkör, vagy pedig nyitni 3 új oszlopot, küldő törölte, címzett törölte, címzett olvasta nevekkel, és csak 0-1 lehet az értékük?
              Nem akarom úgy lekódolni, hogy utána átírhassam az egészet

              #2062860
              balev
              Felhasználó

                Minek tennél hozzá több mezőt, ha elég egy is, amiben flag-eket tudsz beállítani, ahogy írtad? 🙂

                Fontos mindig jól előre átgondolni a táblák szerkezetét, felépítését, mert később kevesebb gond van vele. Persze, ettől függetlenül nem lehet mindent előre látni. Ha állandóan csak a javításokkal, átírással foglalkozik az ember, akkor sohasem lesz „kész” a program.

                Hiába gondoltam át én is az előző munkám tábláit, végül rengeteg módosítást kellett csinálnom rajtuk. No de ez nem gond, hiszen MySQL-ben nagyon könnyen lehet mezőket kivenni, beszúrni, átnevezni, tulajdonságot váltani, stb.

                (egyébként szervusz: http://en.wikipedia.org/wiki/Servus)

                #2062861
                Wait
                Felhasználó

                  Köszönöm az infót!

                  (a b és v eset pedig megér egy misét… 🙂 )

                  #2062862
                  xcut
                  Felhasználó
                    Wait wrote:
                    Szerbusztok!

                    Egy portálon belüli üzenetküldő rendszert csinálok, php a feldolgozó, MySQL az adatbázis. Azt akarom elérni, hogy a még nem olvasott leveleknél figyelmeztessen, ha én törlök egy levelet, az a feladónál megmaradjon, és fordítva.
                    Tulajdonképp az egész szkript annyi, hogy beírja a MySQL-be, ahonnan aztán olvassa a php.
                    A kérdés a következő: mi a gyorsabb? Ha a feladó, címzett, időpont, levél tartalma tábla mellé csinálok még egy oszlopot, ahol 0-7-ig lehetnek az értékek, ha 1 – küldő törölte, ha 2 – címzett törölte, ha 4 – még nem olvasta, tehát úgy megvalósítani, mint a UNIX-jogkör, vagy pedig nyitni 3 új oszlopot, küldő törölte, címzett törölte, címzett olvasta nevekkel, és csak 0-1 lehet az értékük?
                    Nem akarom úgy lekódolni, hogy utána átírhassam az egészet

                    A 3 külön oszlop a jobb, elmondom miért. Az adatbázisoknál gyakran nem a sebesség a legfontosabb, hanem az áttekinhetőség és a redurancia (egy olyan adat ismétlődése, aminek csak egy értéke lehet; ha nem, akkor gubanc alakul ki) elkerülése. Ezért vannak az NF-ek (normálforma). Célszerű 3NF-ig legalább elmenni, ha nagyon szép, és tiszta adatbázist akarsz, akkor BCNF; az 5NF szerintem egy kicsit túlzás. (bővebb felvilágosítást erről a google tud adni).
                    Illetve, ha belegondolsz, akkor jobban kereshető, és ezzel gyorsabb. Ha pl nem akarod lekérni a címzett által törölteket, akkor csak beleraksz egy olyat, hogy „WHERE cimzett_torolt 1”, és kész. Nem kell $n rekorddal többet lekérni, aztán php-ben utólagosan szelektálni.

                    Ha pedig nem hiszel nekem, akkor nézd csak meg phpmyadmin-ban, hogy a mysql hogyan tárolja el a jogokat (mysql tábla). Ugyanilyen módszerrel.

                    #2062863
                    Wait
                    Felhasználó

                      Elhiszem, de az első megoldás több CPU-t, ez több HD-t eszik. Tudtommal pedig a CPU a gyorsabb 🙂
                      Van olyan szerencsém, hogy ezt csak egyszer kell megírnom, utána le van tudva, de asszem kétszer fogom megírni, tesztelek 😀
                      Amúgy 0-1 adathoz milyen típust adjak meg az oszlopnak?

                      #2062864
                      xcut
                      Felhasználó
                        Wait wrote:
                        Elhiszem, de az első megoldás több CPU-t, ez több HD-t eszik. Tudtommal pedig a CPU a gyorsabb 🙂
                        Van olyan szerencsém, hogy ezt csak egyszer kell megírnom, utána le van tudva, de asszem kétszer fogom megírni, tesztelek 😀
                        Amúgy 0-1 adathoz milyen típust adjak meg az oszlopnak?

                        valóban, de mégis a HDD-ból van több, főleg, ha normális szerverre rakod (és gondolom nem otthonra szánod, hanem ki akarod rakni vmi tárhelyre), mivel egy oldalnál sokkal fontosabb szempont az oldalgenerálási idő, mint az, hogy mekkora SQL tárhelyet foglal (szvsz, de szerintem vannak, akik osztják a véleményem).

                        próbálkozz BOOL-lal (phpmyadmin szerint van), ha az nincsen, akkor INT(1)

                      10 bejegyzés megtekintése - 41-50 / 73
                      • Be kell jelentkezni a hozzászóláshoz.