Pomoc - Szukaj - Użytkownicy - Kalendarz
Pełna wersja: [mysql]jaki sposób najlepszy na przechowywanie e-maila?
Forum PHP.pl > Forum > Przedszkole
szpakoo
jak w temacie... Varchar czy coś innego?
l0ud
Ja zawsze do maili używam char(50) i według mnie jest ok smile.gif
marcio
Ja tam uzywam varchar a na szybkosciach typow danych sie nie znam
phpion
Tak, varchar. Dodatkowo ograniczony np. do 40 znaków - powinno wystarczyć.
szpakoo
OK dzięki wielkie!
a jak przechowywać płeć i stan cywilny?

Płeć to myślałem żeby zapisać jako: 0 i 1 np,
a stan cywilny hmm nie wiem...
To ma być do dość dużego projektu, więc zależałoby mi na szybkości
l0ud
Jak zależy Ci na szybkości to nie stosuj varchara tylko char. Co do płci to najprościej zastosuj tinyint. A stan cywilny to zależy w jakim sensie.
szpakoo
Dobra chłopaki dzięki za pomoc! macie po plusiku. o stanie cywilnym jeszcze pomysle troche
nospor
Cytat
Jak zależy Ci na szybkości to nie stosuj varchara tylko char.
Ejjj tam...
char ma to do siebie ze jak powiesz 40 znakow to zawsze bedzie mial 40 znakow nawet jak tresc wpisana ma tylko 2 znaki.
Dodatkowo jesli w tabeli masz char i varchar to char i tak zostanie zmieniony na varchar.
Podsumowujac: char stosowac tylko wtedy gdy zawsze bedzie stala ilosc znakow. Jak zmienna to varchar
Grzyw
Cytat(szpakoo @ 17.03.2008, 22:06:08 ) *
a jak przechowywać stan cywilny?


Dwa sposoby.
1) Wpisuj wartości 1-4 do pola typu tinyint(1), a w PHP:

  1. <?php
  2. $stanCywilny[1] = 'Kawaler';
  3. $stanCywilny[2] = 'Żonaty';
  4. $stanCywilny[3] = 'Wdowiec';
  5. $stanCywilny[4] = 'Rozwodnik';
  6.  
  7. echo $stanCywilny[$wartosc_z_bazy];
  8. ?>


lub utwórz tabelę stany_cywilne:

id | stan
1 Kawaler
2 Żonaty
3 Wdowiec
4 Rozwodnik

a w tabeli users pole stan_id.
I możesz wyciągnąć potrzebne dane.
Polecam sposób 1, bardziej wydajny.
szpakoo
Cytat
Podsumowujac: char stosowac tylko wtedy gdy zawsze bedzie stala ilosc znakow. Jak zmienna to varchar

z tego wynika że jako CHAR w 99% opłacać mi sie będzie tylko do przechowywania zhashowanego hasła do logowania no i innych pol w tej tabeli. a pozostałe przypadki VARCHAR

Cytat
$stanCywilny[1] = 'Kawaler';
$stanCywilny[2] = 'Żonaty';
$stanCywilny[3] = 'Wdowiec';
$stanCywilny[4] = 'Rozwodnik';

Grzyw zapomniałeś o kobietkach... panny, rozwódki itp...smile.gif
l0ud
Cytat(nospor @ 17.03.2008, 22:26:28 ) *
Ejjj tam...
char ma to do siebie ze jak powiesz 40 znakow to zawsze bedzie mial 40 znakow nawet jak tresc wpisana ma tylko 2 znaki.
Dodatkowo jesli w tabeli masz char i varchar to char i tak zostanie zmieniony na varchar.
Podsumowujac: char stosowac tylko wtedy gdy zawsze bedzie stala ilosc znakow. Jak zmienna to varchar



No jasne, ale zawsze varchar będzie mniej wydajny. Oczywiście nie mówiłem o mieszaniu varchara z charem, bo to jak mówiłeś jest bezsensowne. Ale czy nie lepiej poświęcić te kilka bajtów dla lepszej wydajności i wszędzie robić char?
nospor
Cytat
Ale czy nie lepiej poświęcić te kilka bajtów dla lepszej wydajności i wszędzie robić char
Uwazam ze nie, tym bardziej ze nawet jesli jest roznica wydajnosciowa to niewielka.

Cytat
z tego wynika że jako CHAR w 99% opłacać mi sie będzie tylko do przechowywania zhashowanego hasła do logowania no i innych pol w tej tabeli. a pozostałe przypadki VARCHAR
Jak pisalem wczesniej: jesli w jednej tabeli masz char i varchar to char i tak zostanie zamienione na varchar. Ja zawsze wale varchar nawet dla stalych kolumn bo i tak zawsze mam jakies niestale (varchar). W zasadzie to ten temat mi przypomniaj o istnieniu char, ale to tylko jako ciekawostka bo i tak nigdy nie uzywam winksmiley.jpg
webdice
Dodam do siebie, bo o dziwo nikt nie wspomniał, jeśli masz jakieś pola wyboru typu TAK/NIE/NIE WIEM lub 1/0 itp, to dobrze jest stosować enum.
To jest wersja lo-fi głównej zawartości. Aby zobaczyć pełną wersję z większą zawartością, obrazkami i formatowaniem proszę kliknij tutaj.
Invision Power Board © 2001-2025 Invision Power Services, Inc.