Post
#1
|
|
|
Grupa: Zarejestrowani Postów: 11 Pomógł: 0 Dołączył: 15.10.2014 Ostrzeżenie: (0%)
|
Witam serdecznie.
Tworzyłem sobie bazę i stronę do tego w php i w miarę jak ją pisałem, kolumn zaczęło przybywać. Wymyślałem kolejne rzeczy które by mi pomogły zarządzać rekordami i pracowałem tylko na jednej tabeli w której teraz jest około 200 kolumn. Wydawało mi się że przy około 500 rekordach nie będzie żadnego problemu, ale ostatnio rozmawiałem ze znajomym i mnie trochę nastraszył. Co sądzicie, czy taka baza ma prawo poprawnie działać czy przerobić ją i całą stronę w PHP na mniejsze tabele? Jeśli tak to poprosiłbym o polecenie jakieś materiałów na temat powiązań tablic itd, bo nie ukrywam że słyszałem wcześniej o takim czymś tylko z niewiedzy i zlekceważenia tego aspektu zrobiłem wszystko w jednej. Pozdrawiam |
|
|
|
![]() |
Post
#2
|
|
|
Grupa: Zarejestrowani Postów: 246 Pomógł: 79 Dołączył: 25.05.2010 Ostrzeżenie: (0%)
|
Szukaj haseł: projektowanie baz danych, relacje, postacie normalne, normalizacja bazy danych
|
|
|
|
Post
#3
|
|
|
Grupa: Zarejestrowani Postów: 11 Pomógł: 0 Dołączył: 15.10.2014 Ostrzeżenie: (0%)
|
Czyli rozumiem że mam przerobić tak? (IMG:style_emoticons/default/biggrin.gif)
|
|
|
|
Post
#4
|
|
|
Grupa: Zarejestrowani Postów: 1 240 Pomógł: 278 Dołączył: 11.03.2008 Ostrzeżenie: (0%)
|
Jeżeli wiążesz jakąkolwiek przyszłość z tą stroną to musisz ją przerobić.
|
|
|
|
Post
#5
|
|
|
Grupa: Zarejestrowani Postów: 11 Pomógł: 0 Dołączył: 15.10.2014 Ostrzeżenie: (0%)
|
Dziękuję bardzo!
Zaraz się zabieram do czytania. |
|
|
|
Post
#6
|
|
|
Grupa: Zarejestrowani Postów: 8 068 Pomógł: 1414 Dołączył: 26.10.2005 Ostrzeżenie: (0%)
|
Nie podałeś ŻADNYCH konkretów co do tabeli.
200 kolumn typu tinyint to nic, 200 kolumn typu text to już coś, kolumny które można zastąpić czymś w innej bazie... Można gdybać. Ogólnie nie jest wskazane aby nadmiernie przepakowywać ilość kolumn, ale to zależy od sytuacji. Jak pokażesz strukturę to można pomyśleć. |
|
|
|
Post
#7
|
|
|
Grupa: Zarejestrowani Postów: 11 Pomógł: 0 Dołączył: 15.10.2014 Ostrzeżenie: (0%)
|
Struktura wygląda tak:
60 x varchar(4) 60 x varchar(25) 60 x varchar(20) + 11 innych pól na adres, imie, nazwisko, tel, id itd. Co myślisz? |
|
|
|
Post
#8
|
|
|
Grupa: Zarejestrowani Postów: 655 Pomógł: 73 Dołączył: 2.05.2014 Ostrzeżenie: (0%)
|
Może łatwiej było by np. te 60x varchar(4) zrobić jedno pole typu text i serialize/deserialize? ;] Po kluczu odpowiednim jechać. Więcej roboty w samym php ale zdaje mi się, że jest to bardziej "lepsze" rozwiązanie.
Joiny tutaj dużo nie zmienią - można rozbić na kilka tabel po kilkadziesiąt kolumn i pobierać daną tabele tylko i wyłącznie gdy na prawdę jest potrzebna - dobrze to rozegrać i będzie gitara. Na pewno nie potrzebujesz tych 200 pól za każdym razem gdy odwołujesz się do użytkownika. |
|
|
|
Post
#9
|
|
|
Grupa: Zarejestrowani Postów: 8 068 Pomógł: 1414 Dołączył: 26.10.2005 Ostrzeżenie: (0%)
|
Na moje oko to tutaj będzie max 15 kolum + 3 dodatkowe tabelki po 3 kolumny czyli razem 18 (IMG:style_emoticons/default/wink.gif) Właśnie zoptymalizowałem bazę 10x (IMG:style_emoticons/default/smile.gif)
|
|
|
|
Post
#10
|
|
|
Grupa: Zarejestrowani Postów: 655 Pomógł: 73 Dołączył: 2.05.2014 Ostrzeżenie: (0%)
|
Na moje oko to tutaj będzie max 15 kolum + 3 dodatkowe tabelki po 3 kolumny czyli razem 18 (IMG:style_emoticons/default/wink.gif) Właśnie zoptymalizowałem bazę 10x (IMG:style_emoticons/default/smile.gif) Rozwiń myśl (IMG:style_emoticons/default/wink.gif) nie wiesz przecież jakie dane on trzyma w tabeli. Jestem ciekaw twojego sposobu myślenia w tym wypadku. |
|
|
|
Post
#11
|
|
|
Grupa: Zarejestrowani Postów: 8 068 Pomógł: 1414 Dołączył: 26.10.2005 Ostrzeżenie: (0%)
|
Skoro ma po 60 szt. kolum w 3 rodzajach to domniemam że są one ponumerowane od 1-60.
Co za tym idzie utworzenie tabeli z 4 kolumnami (3 wyciągnięte jako rodzaj) + 1 na określenie numery kolumny z poprzedniej tabeli + jakieś FK + ID jak AI no to 7 kolumn (jedna tabelka). + kolejna tabelka z pozostałości po poprzedniej co daje nam razem 2 tabele i 18 kolumn razem (IMG:style_emoticons/default/smile.gif) |
|
|
|
Post
#12
|
|
|
Grupa: Zarejestrowani Postów: 11 Pomógł: 0 Dołączył: 15.10.2014 Ostrzeżenie: (0%)
|
Nie pomyliłeś się dużo.
Podsyłam kod, ale sądząc po waszej reakcji nie ma tragedii z tym, tak? http://pastebin.com/BFCa9Suj |
|
|
|
Post
#13
|
|
|
Grupa: Zarejestrowani Postów: 1 421 Pomógł: 310 Dołączył: 18.04.2012 Ostrzeżenie: (0%)
|
Szzaleństwo... Nazwisko VARCHAR(15) - BRZĘCZYSZCZYKIEWICZ nie wejdzie. Telefon - 50, email również... Zaszalałeś... Pola `m`, `d`, `kto` to poracha zupelna
|
|
|
|
Post
#14
|
|
|
Grupa: Zarejestrowani Postów: 8 068 Pomógł: 1414 Dołączył: 26.10.2005 Ostrzeżenie: (0%)
|
No to już rozwiązanie dostałeś (IMG:style_emoticons/default/smile.gif) Teraz musisz to tylko okodować w odpowiednie tabele.
A tymczasem uciekam na HotS'a (IMG:style_emoticons/default/haha.gif) |
|
|
|
Post
#15
|
|
|
Grupa: Zarejestrowani Postów: 11 Pomógł: 0 Dołączył: 15.10.2014 Ostrzeżenie: (0%)
|
Szzaleństwo... Nazwisko VARCHAR(15) - BRZĘCZYSZCZYKIEWICZ nie wejdzie. Telefon - 50, email również... Zaszalałeś... Pola `m`, `d`, `kto` to poracha zupelna Rozumiem, zmienię to. Dzięki 15 na tel, 25 email i 35 na nazwisko będzie ok? Skoro ma po 60 szt. kolum w 3 rodzajach to domniemam że są one ponumerowane od 1-60. Co za tym idzie utworzenie tabeli z 4 kolumnami (3 wyciągnięte jako rodzaj) + 1 na określenie numery kolumny z poprzedniej tabeli + jakieś FK + ID jak AI no to 7 kolumn (jedna tabelka). + kolejna tabelka z pozostałości po poprzedniej co daje nam razem 2 tabele i 18 kolumn razem (IMG:style_emoticons/default/smile.gif) Mógłbyś jaśniej, bo naprawdę nic nie załapałem. Chociaż jakiś obrazek, albo trochę bardziej szczegółowo. Dzięki |
|
|
|
Post
#16
|
|
|
Grupa: Zarejestrowani Postów: 8 068 Pomógł: 1414 Dołączył: 26.10.2005 Ostrzeżenie: (0%)
|
50 email, 50 nazwisko - więcej nie ma chyba sensu
Tabela 1 - id, imie, nazwisko .... Tabela 2 - id - tabel1_id - numerek (1-60) - m - d - kto |
|
|
|
![]() ![]() |
|
Aktualny czas: 21.12.2025 - 19:12 |