Witaj Gościu! ( Zaloguj | Rejestruj )

Forum PHP.pl

 
Reply to this topicStart new topic
> Jak policzyć cenę., Może ktoś ma prosty sposób.
TomASS
post
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?


--------------------
Go to the top of the page
+Quote Post
mike
post
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
Go to the top of the page
+Quote Post
tort
post
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
Go to the top of the page
+Quote Post
mike
post
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 sad.gif

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?
Go to the top of the page
+Quote Post
TomASS
post
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ę smile.gif Do tego dotarłem, ale sprawa się komplikuje jak chcesz zrobić coś na wzór formuły w excelu, przy dodawaniu nowego użytkownika nie znam jakie trzeba zrobić działania, ale wiem, że będą potrzebne któreś z kolumn A B C D E F......
ale nie znam tych działań - te działania najlepiej przypisać do tabeli użytkowników do danego użytkownika - tylko jak?


--------------------
Go to the top of the page
+Quote Post
tort
post
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
Go to the top of the page
+Quote Post
TomASS
post
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
  1. <?php
  2.  
  3. $jak = $row['jak']; //z bazy
  4. $query = "SELECT $jak FROM cennik";
  5.  
  6. ?>

ale nie wiem co z tego będzie....


--------------------
Go to the top of the page
+Quote Post
tort
post
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
Go to the top of the page
+Quote Post

Reply to this topicStart new topic
1 Użytkowników czyta ten temat (1 Gości i 0 Anonimowych użytkowników)
0 Zarejestrowanych:

 



RSS Aktualny czas: 21.08.2025 - 14:51