Pomoc - Szukaj - Użytkownicy - Kalendarz
Pełna wersja: Wyszukiwanie danych (serialize)
Forum PHP.pl > Forum > Bazy danych > MySQL
wujek2009
Cześć.

Tworzę tabelę użytkowników i zastanawiam się nad strukturą dla pól dodatkowych (np. specyfikacja komputera [proc|ram|grafika|płyta gł]) - ogólnie takich kolumn powiedzmy będzie 9 i teraz nie wiem czy niepotrzebnie śmiecić sobie tabelę użytkowników o dodatkowe 9 kolumn czy może po prostu zrobić jedną kolumnę np. "pc_specyfikacje" i umieścić tam dane, które przefiltruje przez serialize.

Zastanawiam się nad kwestia wyszukiwania, np. sprawdzić kto ma procesor AMD a kto Intel - czy takie wyszukiwanie może być utrudnione/nieoptymalne skoro dane są przefiltrowane przez serialize?
Czy może macie inną koncepcje dodatkowych pół, które mógłbym dodawać w ACP i użytkownik edytowałby je dowolnie z poziomu swojego profilu.
d3ut3r
"skoro dane są przefiltrowane przez serialize" nie bardzo wiem o co chodzi smile.gif

Co do twojego problemu to wyobraź sobie taki formularz,

mamy pole procesor i text do wpisania, ja wpiszę Intel xxxxx, Ktoś wpisze AMD xxxxx a ktoś inny wpisze tylko i5 a jeszcze inny wpisze Athlon.

I teraz chcąc wyszukać userów którzy mają procesory intel będziesz zmuszony zrobić zapytanie podobne do tego

  1. SELECT ..... WHERE procesor LIKE "%Intel%"


co oczywiście nie zwróci w wynikach usera który wpisał jako procesor i5.

Moim zdaniem idealnie by było zrobić tabele dla każdego ważnego dla Ciebie podzespołu

procesory
płyty główne
karty graficzne
....
itd.

następnie robisz sobie tabele konfiguracje gdzie masz:

id
id_procesora
id_karty
id_plyty
...
itd.

nastepnie robisz sobie tabele user_ref_konfiguracja:

id_usera
id_konfiguracji


pozwoli to twoim użytkownikom trzymać kilka konfiguracji komputerów (ktoś może mieć 2 komputery). Dane do bazy o procesorach i kartach graficznych możesz pobrać np z jakiegoś konfiguratora sprzętu komputerowego a później sukcesywnie dopisywać. Ale oczywiście wszystko zależy od twoich potrzeb i Ty najlepiej wiesz jakie funkcje chcesz udostępnić smile.gif


wujek2009
Kod
"skoro dane są przefiltrowane przez serialize" nie bardzo wiem o co chodzi


np. podczas edycji;
  1. $dane = array();
  2. $dane['procesor'] = 'AMD';
  3. $dane['grafika'] = 'radeon';
  4. $dane['ram'] = 'goodram';
  5.  
  6. $dane = serialize($dane); // i ten wynik idzie do kolumny "pc_specyfikacje"
  7. //a:3:{s:8:"procesor";s:3:"AMD";s:7:"grafika";s:6:"radeon";s:3:"ram";s:7:"goodram";}


Jednak tak właśnie myślałme, że musiałbym skorzystać z LIKE aby wyszukiwać danych jeśli użyłbym w/w konfiguracji.
Zdecyduje się jednak na oddzielną tabelę.
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.