Google Groups no longer supports new Usenet posts or subscriptions. Historical content remains viewable.
Dismiss

[MySQL] Jaki typ pola aby trzymać liczby oddzielone przecinkiem ?

65 views
Skip to first unread message

sawic

unread,
Mar 4, 2007, 12:25:00 PM3/4/07
to
Witam.
W jednej kolumnie tabeli muszę trzymać liczby (dodatnie, jeżeli ma to
znaczenie), oddzielone przecinkami.
Zastanawiam się, jaki typ danych wybrać dla tej kolumny, aby było to
najlepsze ze względu na wydajność.
Częśto będę musiał robić wyszukiwanie wierszy, gdzie w owej kolumnie
występuje konkretna liczba. Będę to musiał robić poprzez where kolumna =
%liczba%. A wiadomo, że to za wydajne nie jest.

Tabela MyISAM, w bazie około 50k rekordów.
Typ pola na razie dałem jako varchar(20) not null.

Da się to jakoś lepiej wykombinować, aby baza wiedziała, że trzymam
tylko typ liczbowy i przecinki ?

Pozdrawiam

Paweł Matejski

unread,
Mar 4, 2007, 4:35:32 PM3/4/07
to

Od tego są bazy relacyjne, żeby takie dane trzymać w osobnej tabeli!

--
P.M.

sawic

unread,
Mar 4, 2007, 5:00:21 PM3/4/07
to
Paweł Matejski napisał(a):

> Od tego są bazy relacyjne, żeby takie dane trzymać w osobnej tabeli!
>

Nie mam jak wykombinować tej relacji.
W konkretnej kolumnie może nie być nic, a równie dobrze może być pare
liczb pooddzielanych przecinkami.
Teoretycznie mógłbym założyć, że skoro w komórce mogę umieścić 20
znaków, co po uwzględnieniu przecinków daje max 11 liczb to mógłbym
objąć relacją tabelę z 11 kolumnami. Ale może z czasem będę chciał
zwiększyć długość tego pola.

Wg mojej wiedzy relacje mi tu nie pomogą a tylko skomplikują sprawę.

Pozdrawiam

Paweł Matejski

unread,
Mar 4, 2007, 6:39:08 PM3/4/07
to

Nie nie... Każda liczba to osobny rekord w tej nowej tabeli! To jest prawidłowe
rozwiązanie tego problemu!

--
P.M.

sawic

unread,
Mar 5, 2007, 10:33:53 AM3/5/07
to
Paweł Matejski napisał(a):

> Nie nie... Każda liczba to osobny rekord w tej nowej tabeli! To jest prawidłowe
> rozwiązanie tego problemu!
>

Hmmm.
Będzie tego straaaaaaaasznie dużo.
Ale może i faktycznie pod względem wydajności będzie lepsze.

Spróbuję.

Pozdrawiam

0 new messages