Wpis z mikrobloga

Siema mirki potrzebuje pomocy.
Robię bazę danych do sklepu internetowego i mój problem jest następujący:
W tabeli produkty jest cena i chcę również cenę dodać do tabeli koszyk żeby przy zmianie ceny produktu nie zmieniała się cena w tych poprzednich koszykach i zrealizowanych już zamówieniach i nie mam pojęcia jak to zrobić.
Jaki jest sposób żeby zbindować wartości jednej kolumny względem drugiej przy dodaniu nowego wiersza?

#bazydanych #programowanie #sqlserver
  • 10
@Kokosz32:
Ale jaki problem? Wiesz co to jest data-binding? Może być jedno i dwu-kierunkowy. To czego potrzebujesz to coś zupełnie innego. Potrzebujesz przepisywania danych, a nie data-binding. Tabela koszyk ma KOPIE produktów, sensowne rozwiązanie to { idproduktu, cenajedn, ilosc }, coś w ten deseń.

Nie może być tak, że cena w koszyku się zmienia - jakby mi tak sklep zrobił - to bym tam w życiu już nie kupił
@the_revenant: Właśnie tak jak napisałeś chcę żeby cena się nie zmieniała po upływie czasu. W sensie dodaje nowy wiersz do tabeli koszyk i w tym momencie chcę żeby kolumna "CENA" w tabeli "KOSZYK" została nadpisana wartością jaką w tej chwili ma produkt tak żeby za rok gdy zmienię cenę tego samego produktu w tabeli Produkty to żeby w kolumnie "CENA" tabeli koszyk ten wpis z przed roku cały czas miał taką
@NaChMiNick: Koszyk jest tabelą wiele do wielu dla Tabeli Zamówienia. Ja bym chciał jakoś nadać właściwość kolumnie CENA w tabeli KOSZYK żeby domyślnie przyjmowała wartość kolumny CENA z tabeli PRODUKT
@Kokosz32: nie jest to dobry pomysl. Sklep moze miec kupony rabatowe. Wiec przepisywanie wartosci z automatu tez nie jest dobre. Musisz po prostu stworzyc wartosc, ktora podajesz do koszyka, w wielu momentach moze byc to wartosc z tabeli z produktami, ale nie musi.
A co niby koszyk ma reprezentować? Znaczy się czym ma się różnić od zamówień?

Koszyk mi się kojarzy z zamówieniem klienta (jednego). To raczej nie powinno siedzieć w bazie tylko w ciastkach klienta. Względnie w pamięci przed dodaniem do zamówień. No może być kopia w bazie tylko dla bajeru, że jak klient się wyloguje i zaloguje to mu stan koszyka zostanie.

Ale taki koszyk dla klienta to ja widzę jako widok. Złączenia
@the_revenant: to roznie, mze siedziec w ciasteczkach, ale tez i w bazie, chocby po to, by mogl kontynuowac zakupy, gdy z jakis przyczyn sie rozlaczy. Loguje sie na konto z innego urzadzenia i kontynuuje - to jest ulatwienie,dodatkowo nie ma problemu z ew manipulacja cenami w trakcie.
Generalnie to ogółem zapomniałem wspomnień że się uczę dopiero i ten projekt nie idzie oczywiście w świat tylko jest to projekt więc przepraszam jak coś że o tym nie wspomniałem wcześniej.
@Kaczus2B: Koszyk ma też kolumnę rabat
@the_revenant: Faktycznie, teraz dopiero pomyślałem że w sumie mogło by być to wszystko w zamówieniu i jak by miało to wyglądać.
Ogółem w zamyśle tabela koszyk miała być elementami zamówienia żeby było jedno
@Kokosz32 potrzebujesz historię cen więc ceny muszą mieć osobna tabelę, produkt powinien linkować do ostatniej. W ogóle dla wielu elementów musisz historię zachować
@Kokosz32: przecież wiadomo, że się uczysz po zadanym pytaniu ( ͡° ͜ʖ ͡°)
Każdą wartość która może zmieniać się w czasie i jest istotna musisz powielać w tabelach. Cena w koszyku/zamówieniu nie jest tym samym co cena produktu.

5 zamówień bo 5 produktów, no co Ty tak nie może być !
Robisz:
1) tabelę Zamowienia, w niej idzamowienia, data, idkupujacego etc ...
2) tabelę element