![]() |
![]() ![]() |
![]() |
![]()
Post
#1
|
|
![]() Grupa: Zarejestrowani Postów: 1 660 Pomógł: 13 Dołączył: 9.06.2004 Skąd: Wrocław i okolice Ostrzeżenie: (0%) ![]() ![]() |
Witam.
Mam tablę załóżmy taką: A(int) | B(int) | C(int) | D(int) | E(int) | F(int) Mam tabelę użytkownicy. I teraz każdy z użytkowników np. liczy cenę, KAŻDY INACZEJ. I tak: user1: A+B+C user2: A*F . . . . jak takie "formuły" zapisać w bazie danych? -------------------- |
|
|
![]()
Post
#2
|
|
Grupa: Przyjaciele php.pl Postów: 7 494 Pomógł: 302 Dołączył: 31.03.2004 Ostrzeżenie: (0%) ![]() ![]() |
Ja bym dał tak:
users id | name | jakieś_tam_atrybuty... price id | price | jakieś_tam_atrybuty... user_price id_user | id_ price I teraz na przykład: price Kod +----+------+ | id |price | +----+------+ |1 |12.90 | |2 |10.20 | |3 | 8.45 | |4 |10.00 | |5 |12.90 | +----+------+ user_price Kod +---------+----------+ | id_user | id_price | +---------+----------+ | 1 | 1 | | 1 | 2 | | 1 | 5 | | 4 | 1 | | 4 | 4 | +---------+----------+ ------------- Użytkownik o id=1 ma ceny liczone wg. 1,2,5 Użytkownik o id=4 ma ceny liczone wg. 1,4 |
|
|
![]()
Post
#3
|
|
![]() Grupa: Zarejestrowani Postów: 24 Pomógł: 0 Dołączył: 15.09.2005 Skąd: Lublin Ostrzeżenie: (0%) ![]() ![]() |
Cytat(mike_mech @ 2006-02-17 17:27:29) Użytkownik o id=1 ma ceny liczone wg. 1,2,5 Użytkownik o id=4 ma ceny liczone wg. 1,4 E... no tak, tylko że w ten sposób nie przechowasz chyba danych o działaniach, jakie trzeba wykonać na wartościach odpowiednich kolumn, żeby uzyskać docelową cenę. -------------------- tort
eX Blog |
|
|
![]()
Post
#4
|
|
Grupa: Przyjaciele php.pl Postów: 7 494 Pomógł: 302 Dołączył: 31.03.2004 Ostrzeżenie: (0%) ![]() ![]() |
Cytat(tort @ 2006-02-17 18:30:26) E... no tak, tylko że w ten sposób nie przechowasz chyba danych o działaniach, jakie trzeba wykonać na wartościach odpowiednich kolumn, żeby uzyskać docelową cenę. No fakt Umknęły mi te działania ![]() To teraz pytanie pomocnicze: Czy działania są zawsze takie same? Jak mnożenie to mnożenie czy może być tak A+B*C? |
|
|
![]()
Post
#5
|
|
![]() Grupa: Zarejestrowani Postów: 1 660 Pomógł: 13 Dołączył: 9.06.2004 Skąd: Wrocław i okolice Ostrzeżenie: (0%) ![]() ![]() |
Tak jak proponowałeś za pierwszym razem micke - to też miałem taką opcję
![]() ale nie znam tych działań - te działania najlepiej przypisać do tabeli użytkowników do danego użytkownika - tylko jak? -------------------- |
|
|
![]()
Post
#6
|
|
![]() Grupa: Zarejestrowani Postów: 24 Pomógł: 0 Dołączył: 15.09.2005 Skąd: Lublin Ostrzeżenie: (0%) ![]() ![]() |
Cytat(TomASS @ 2006-02-17 17:09:55) jak takie "formuły" zapisać w bazie danych? To będzie raczej trudne o ile nie niemożliwe. Lepiej jest pozostawić bazie danych przechowywanie odpowiednich danych, natomiast obliczenia wykonywać na poziomie aplikacji klienckiej lub ewentualnie napisac jakąś funkcję/procedurę składowaną (lub ich zestaw), która wykona takie obliczenia. -------------------- tort
eX Blog |
|
|
![]()
Post
#7
|
|
![]() Grupa: Zarejestrowani Postów: 1 660 Pomógł: 13 Dołączył: 9.06.2004 Skąd: Wrocław i okolice Ostrzeżenie: (0%) ![]() ![]() |
Cytat obliczenia wykonywać na poziomie aplikacji klienckiej Czyli dla każdego nowego użytkownika muszę robić od nowa każdy plik (funkcję) aby mi liczył dla niego cenę? Myślę o jakimś parsowaniu....czyli np. jest A+B*C. Wrzucamy to do zmiennej
ale nie wiem co z tego będzie.... -------------------- |
|
|
![]()
Post
#8
|
|
![]() Grupa: Zarejestrowani Postów: 24 Pomógł: 0 Dołączył: 15.09.2005 Skąd: Lublin Ostrzeżenie: (0%) ![]() ![]() |
Cytat Czyli dla każdego nowego użytkownika muszę robić od nowa każdy plik (funkcję) aby mi liczył dla niego cenę? A tego już nie wiem. Jeśli jest tak, że dla każdego użytkownika formuła obliczania ceny jest unikalna, to być może. A w zasadzie to bym zrobil tak, że napisałbym parser formuł, który na podstawie danych pobranych z bazy danych wykonywałby obliczenia. W bazie danych natomiast stworzyłbym tabelę zawierającą formuły obliczania cen, a w tabeli z użytkownikami dodałbym klucz obcy pozwalający powiązać użytkowników z formułami. Parser analizowałby formułę i na jej podstawie byłaby obliczana cena. -------------------- tort
eX Blog |
|
|
![]() ![]() |
![]() |
Aktualny czas: 21.08.2025 - 14:51 |