konto usunięte

Temat: Przechowywanie ustawień

.. czy to preferencji użytkowników, czy to ustawień portalu.

Jak zorganizować to najlepiej? Można zrobić tabelę, i co chwilę dodawać jej nowe kolumny, ale to trochę karkołomne. Można też robić coś w stylu key | value | user_id, ale wtedy rekordów będzie ilośc użytkowników * ilośc ustawień.

A może pliki? ini?

Pozdrawiam
Piotr Lewandowski

Piotr Lewandowski Programista
aplikacji
internetowych (PHP,
MySQL, SF2, Mag...

Temat: Przechowywanie ustawień

Mysle ze patrzac od strony wydajnosci baza bedzie szybsza. Mozna tez rozwazyc opcje zapisania opcji w 1 wierszu rozdzielajac je np srednikami lub pobawic sie serializacja obiektow... choc nie jestem przekonany do konca czy jest sens... jesli baza ma zawierac od kilkunastu do kilkudziesieciu tysiecy rekordko, to mysle ze nie bedzie stanowilo to problemu. Dla przypiesznia przeszukiwania mozna stworzyc index unikalny na dwa pola (user_id, option). Pozatym biorac pod uwage samo MySQL sa rozne typy tabel, ktore w rozny sposob przeszukuja dane... jesli myslisz o czyms duzym, to uwazam z powinienes przeanalizowac rozne bazy danych i wybrac najbardziej odpowiednia. Tak czy inaczej postawilbym raczej na baza danych (zwlaszcza jesli to ma byc duza ilosc uzytkownikow).

konto usunięte

Temat: Przechowywanie ustawień

Jakub Świegot:
.. czy to preferencji użytkowników, czy to ustawień portalu.

Jak zorganizować to najlepiej? Można zrobić tabelę, i co chwilę dodawać jej nowe kolumny, ale to trochę karkołomne. Można też robić coś w stylu key | value | user_id, ale wtedy rekordów będzie ilośc użytkowników * ilośc ustawień.

A może pliki? ini?

Pozdrawiam

Zależy do czego mają być to ustawienia...

Jeżeli ustawienia samej aplikacji to polecam zapisywać je w pliku XML.

Jeżeli mają to być ustawienia użytkownika systemu, to pewnie zserializowana tablica zapisywana do odpowiedniego pola w bazie danych będzie dobrym rozwiązaniem.

Temat: Przechowywanie ustawień

Przechowywanie ustwien uzytkownika:

Zakladam ze masz tabele np. users z PK - user_id
Kazde ustawienie np.colorschema, layout, et c moze byc w innej tabeli
Kolumny: user_id, value
Zaleta tego rozwiazania ze stosujac observera mozesz w kazdej chwili dodawac nowe ustawienia i nie bedzie to miec wplywu na istniejaych userow. Minus- zapytania do DB

Rozwiazanie drugie: XML warto tu jednak zastosowac cachowanie do zmiennych niz parsowanie za kazdym razem calego XML'a

Rozwiazanie z rozielaniem ustawien np. red=yes::size=10 w komorce rekordu dziala ale wprowadza ukryta relacje a takie cos nie powinno miec miejsca.

konto usunięte

Temat: Przechowywanie ustawień

chyba zastosuje jednak tabele typu

user_id | key | value

niech by to bylo nawet 20-30 preferencji uzytkownika to przy 1000 uzytkownikow to mamy dopiero 30000 rekordow, co na baze mysql wcale nie jest duzo. Do tego indeks na user_id oraz 'key' i powinno byc ok.

Dzieki za poradyJakub Świegot edytował(a) ten post dnia 27.03.08 o godzinie 15:43
Paweł Malisak

Paweł Malisak PHP Developer

Temat: Przechowywanie ustawień

Jakub Świegot:
chyba zastosuje jednak tabele typu

user_id | key | value

niech by to bylo nawet 20-30 preferencji uzytkownika to przy 1000 uzytkownikow to mamy dopiero 30000 rekordow, co na baze mysql wcale nie jest duzo. Do tego indeks na user_id oraz 'key' i powinno byc ok.

po co na key indeks? zawsze będziesz szukał po user_id co skróci wynik do 20-30 pozycji i nawet jeśli dodasz kolejny warunek na `key` to indeks wcale nie pomoże, a raczej spowolni wyszukiwanie



Wyślij zaproszenie do