Post
#1
|
|
|
Grupa: Zarejestrowani Postów: 215 Pomógł: 19 Dołączył: 24.12.2003 Skąd: Przemyśl Ostrzeżenie: (0%)
|
Witam
Mam takie pytanie. Otóż posiadam w bazie kilka tysięcy produktów, produkty te należą do róznych kategorii i jest ich na chwilę obecną (tych kategorii) około 1400. Dany produkt nalezy do jednej kategorii. Kategorie są przechowywane w tabeli według schematu Kod idCategory,idParent,name, .... Teraz administrator systemu może każdemu użytkowikowi tego systemu przypisac różny narzut procentowy dla każdej z kategorii. Produkty są przechowywane w z cenami netto zakupu. I teraz pytanie w jaki sposób przechowywać te wartości aby potem móc swobodnie obliczać wartości cen produktów gdy dany użytkownik je sobie przegląda. Jest to coś w stylu B2B. Zakładając że administrator określi np. dla jakiejś kategorii najwyższego poziomu narzut 5%, więc musze zapisać również wszystkie kategorie podrzędne z taką wartością. Potem jednak jeśli chce pobrać z bazy np 1000 produktów naraz to muszą w jakiś sposób sprawdzić dla danego produktu jaki jest dla niego narzut a własciwie dla kategorii do której należy a następnie go obliczyć. Jakie macie pomysły na coś takeigo Będę wdzięczny za wszelkei info. Pozdrawiam Ten post edytował jajcarzd1 26.07.2010, 13:58:34 |
|
|
|
![]() |
Post
#2
|
|
|
Grupa: Zarejestrowani Postów: 1 590 Pomógł: 185 Dołączył: 19.04.2006 Skąd: Gdańsk Ostrzeżenie: (0%)
|
Cytat problemem jest potem w locie określenie ceny dla danego usera robiąc selecta dla produktów. Bo w danym selecie muszę pobrać produkty dla każdego pobrac wartośc narzutu z ewentualnej tabeli narzutów, jesli takiego nie ma to przypisują domyślny i wtedy wyliczam cenę netto sprzedaży dla danego kontrahenta. I nie mam na to pomysłu za brdzo żeby było to wydajne - ciężko teoretyzować, generalnie dołączanie małych tabel przy relacji jeden do jednego śmiga jak burza (jak masz indeksy), operacje matematyczne też należą do jednych z szybszych. Problem może być wtedy, jeśli masz dużo userów i dużo produktów, wtedy można:- dodać dodatkowe pola, przeliczane przy modyfikacji danych danej tabeli/tabel - rozbijać tabele na mniejsze (np. każda główna kategoria produktów w innej tabeli) Najlepiej sprawdzić testując obciążenie, nie ma sensu martwić się na zapas. |
|
|
|
Post
#3
|
|
|
Grupa: Zarejestrowani Postów: 215 Pomógł: 19 Dołączył: 24.12.2003 Skąd: Przemyśl Ostrzeżenie: (0%)
|
- ciężko teoretyzować, generalnie dołączanie małych tabel przy relacji jeden do jednego śmiga jak burza (jak masz indeksy), operacje matematyczne też należą do jednych z szybszych. Hmm ale nie bardzo wiem co masz a myśli, co by się miało znaleźć w tych tabelach, bo na chwilę obecną tak jak wspomniałem wcześniej jest już pracująca struktura tabeli produktów i kategorii. Problem może być wtedy, jeśli masz dużo userów i dużo produktów, wtedy można: - dodać dodatkowe pola, przeliczane przy modyfikacji danych danej tabeli/tabel - rozbijać tabele na mniejsze (np. każda główna kategoria produktów w innej tabeli) Najlepiej sprawdzić testując obciążenie, nie ma sensu martwić się na zapas. Userów wielu nie będzie ale produktów aktywnych oscyluje w okolicach od kilku do kilkunastu tys. Chyba jednak spróbuję zrobić tabelę Kod user | kategoria| narzut tylko że w trakcie definiowania tych wartości będę zapisywał od razu do tej tabeli wszystkie potomne kategorie jeśli dana kategoria takowe posiada i wtedy dość łatwo powinienem pociągnąć left joinem wartość narzutu bo każdy produkt ma pole kategorii w tabeli produktów. |
|
|
|
jajcarzd1 Jak zapisywac narzut procentowy dla różnych kategorii 26.07.2010, 12:01:56
Pilsener Robisz tabelę:
user | kategoria | rabat
I dołącza... 26.07.2010, 13:09:33 
jajcarzd1 Na początku poprawka nie miałem na myśli progu rab... 26.07.2010, 13:56:32 ![]() ![]() |
|
Aktualny czas: 25.12.2025 - 19:06 |