![]() |
![]() ![]() |
![]() |
![]()
Post
#1
|
|
Grupa: Zarejestrowani Postów: 19 Pomógł: 0 Dołączył: 29.01.2007 Skąd: Nowy Sącz Ostrzeżenie: (0%) ![]() ![]() |
Witam,
pisze prace dyplomowa w której mam stworzony mini sklep internetowy i koszyk zakupów. Tak sie składa ze zawartosc koszyka (powiedzmy kilka dodanych pozycji) zapisywany jest do bazy danych w postaci ciagu znaków varchar zakodowanych funkcja serialize. Moj promotor mowi ze takie cos jest niezgodne z 1 postacia normalna gdyz umieszczam w 1 polu kilka wartosci. A przeciez funkcja serialize zapisuje wartosc tablicy jako pojedynczy ciag znakow? Niech mi ktos pomoze najlepiej podajac jakies zrodla czy ta funkcja jezyka PHP nie lamie 1NF? |
|
|
![]()
Post
#2
|
|
Grupa: Przyjaciele php.pl Postów: 7 494 Pomógł: 302 Dołączył: 31.03.2004 Ostrzeżenie: (0%) ![]() ![]() |
Moj promotor mowi ze takie cos jest niezgodne z 1 postacia normalna gdyz umieszczam w 1 polu kilka wartosci. A przeciez funkcja serialize zapisuje wartosc tablicy jako pojedynczy ciag znakow? A po co Ci źródła? Wystarczy zadać sobie odpowiednie pytanie żeby zrozumieć, że nie masz racji.Niech mi ktos pomoze najlepiej podajac jakies zrodla czy ta funkcja jezyka PHP nie lamie 1NF? Odpowiedz sobie na pytanie jakie i ile elementów jest w koszyku? I na ilu polach są one zapisane wszystkie. I już widać ze kilka elementów ładujesz do tablicy a ją do jednego pola. Albo inne pytanie. Wybierz klientów, którzy mają w koszyku przedmiot o identyfikatorze x. Powodzenia. |
|
|
![]()
Post
#3
|
|
![]() Grupa: Zarejestrowani Postów: 984 Pomógł: 41 Dołączył: 16.03.2002 Skąd: Płock Ostrzeżenie: (0%) ![]() ![]() |
mike ma racje, promotor również, a Ty się nie przykładałeś do nauki o postaciach normalnych!
koszyk ma wyglądać co najmniej tak: - id_uzytkownika primary key, not null - id_towaru primary key, not null - ilosc not null, default 1 proste i skuteczne ![]() Ten post edytował em1X 4.02.2008, 23:34:08 -------------------- eh, co polska wódka to polska wódka
|
|
|
![]()
Post
#4
|
|
Grupa: Zarejestrowani Postów: 19 Pomógł: 0 Dołączył: 29.01.2007 Skąd: Nowy Sącz Ostrzeżenie: (0%) ![]() ![]() |
Eh no to niedobrze. Ale nadal nie daje mi spokoju czemu 1 łancuch znaków a:3:{i:13;s:1:"5";i:14;s:1:"5";i:1;s:1:"5";} łamie 1NF?
|
|
|
![]()
Post
#5
|
|
![]() Grupa: Przyjaciele php.pl Postów: 1 595 Pomógł: 282 Dołączył: 24.09.2007 Skąd: Reda, Pomorskie. Ostrzeżenie: (0%) ![]() ![]() |
Dlatego, że ten JEDEN FIZYCZNY łańcuch, (czyli jedno pole w bazie) przechowuje WIELE LOGICZNYCH danych.
Dla tak "zaszytych" danych nie można tworzyć relacji... Dla tak "zaszytych" danych nie można tworzyć sensownych inedksów... Dla tak "zaszytych" danych nie można w prosty sposób wyszukać konkretnych wartości... Dla tak "zaszytych" danych nie można wprowadzić prostych formuł walidacji... Dla tak "zaszytych" danych nie można ... Podumowując - takie "spakowanie" danych w jednym polu uniemożliwia normalny dostep do nich poprzez wbudowane mechanizmy serwera bazy danych - czy NIE MA SENSU. Przemyśl to - może jeszcze jest czas na zmianę tamatu pracy... -------------------- - Oh no, my young coder. You will find that it is you who are mistaken, about a great many things... - |
|
|
![]()
Post
#6
|
|
Grupa: Zarejestrowani Postów: 19 Pomógł: 0 Dołączył: 29.01.2007 Skąd: Nowy Sącz Ostrzeżenie: (0%) ![]() ![]() |
Praca jest juz prawie napisana tylko promotor wlsnie doczepil sie tej funkcji. No nic w takim razie stworze osobna tabele gdzie bedzie numer zamowienia i zawartosc koszyka w osobnych wierszach. Tak juz bedzie chyba OK? Tak jak napisal em1X
|
|
|
![]()
Post
#7
|
|
Grupa: Przyjaciele php.pl Postów: 7 494 Pomógł: 302 Dołączył: 31.03.2004 Ostrzeżenie: (0%) ![]() ![]() |
|
|
|
![]()
Post
#8
|
|
![]() Grupa: Zarejestrowani Postów: 984 Pomógł: 41 Dołączył: 16.03.2002 Skąd: Płock Ostrzeżenie: (0%) ![]() ![]() |
Eh no to niedobrze. Ale nadal nie daje mi spokoju czemu 1 łancuch znaków a:3:{i:13;s:1:"5";i:14;s:1:"5";i:1;s:1:"5";} łamie 1NF? Cytat("Wikipedia") 1NP: Relacja jest w pierwszej postaci normalnej, jeśli wartości atrybutów są elementarne (atomowe, niepodzielne): są to pojedyncze wartości określonego typu, a nie zbiory wartości. Tabela reprezentująca tę relację nie zawiera powtarzających się grup informacji. Każda kolumna jest wartością skalarną (atomową), a nie macierzą lub listą czy też czymkolwiek, co posiada własną strukturę.
Ten post edytował em1X 5.02.2008, 10:59:09 -------------------- eh, co polska wódka to polska wódka
|
|
|
![]() ![]() |
![]() |
Wersja Lo-Fi | Aktualny czas: 24.07.2025 - 13:57 |