Witaj Gościu! ( Zaloguj | Rejestruj )

Forum PHP.pl

> przerobić bazę? 200 kolumn - czy to ma prawo dobrze działać?
szahmatt
post
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
Go to the top of the page
+Quote Post
 
Start new topic
Odpowiedzi (1 - 15)
kartin
post
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


--------------------
Jeśli ten post pomógł to kliknij przycisk po lewej stronie.
Nie pomagam przez PW, GG, e-mail, faks, telegram, znaki dymne, ...
Go to the top of the page
+Quote Post
szahmatt
post
Post #3





Grupa: Zarejestrowani
Postów: 11
Pomógł: 0
Dołączył: 15.10.2014

Ostrzeżenie: (0%)
-----


Czyli rozumiem że mam przerobić tak? biggrin.gif
Go to the top of the page
+Quote Post
markuz
post
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ć.


--------------------
Go to the top of the page
+Quote Post
szahmatt
post
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.
Go to the top of the page
+Quote Post
Pyton_000
post
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ć.
Go to the top of the page
+Quote Post
szahmatt
post
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?
Go to the top of the page
+Quote Post
Forti
post
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.


--------------------
Overwatch24 - najbardziej zaawansowany Polski portal Overwatch od fanów dla fanów.

Fachowo.co

Behance.net/fachowo
Go to the top of the page
+Quote Post
Pyton_000
post
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 wink.gif Właśnie zoptymalizowałem bazę 10x smile.gif
Go to the top of the page
+Quote Post
Forti
post
Post #10





Grupa: Zarejestrowani
Postów: 655
Pomógł: 73
Dołączył: 2.05.2014

Ostrzeżenie: (0%)
-----


Cytat(Pyton_000 @ 15.01.2015, 09:19:55 ) *
Na moje oko to tutaj będzie max 15 kolum + 3 dodatkowe tabelki po 3 kolumny czyli razem 18 wink.gif Właśnie zoptymalizowałem bazę 10x smile.gif



Rozwiń myśl wink.gif nie wiesz przecież jakie dane on trzyma w tabeli. Jestem ciekaw twojego sposobu myślenia w tym wypadku.


--------------------
Overwatch24 - najbardziej zaawansowany Polski portal Overwatch od fanów dla fanów.

Fachowo.co

Behance.net/fachowo
Go to the top of the page
+Quote Post
Pyton_000
post
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 smile.gif
Go to the top of the page
+Quote Post
szahmatt
post
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
Go to the top of the page
+Quote Post
mmmmmmm
post
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
Go to the top of the page
+Quote Post
Pyton_000
post
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ś smile.gif Teraz musisz to tylko okodować w odpowiednie tabele.

A tymczasem uciekam na HotS'a haha.gif
Go to the top of the page
+Quote Post
szahmatt
post
Post #15





Grupa: Zarejestrowani
Postów: 11
Pomógł: 0
Dołączył: 15.10.2014

Ostrzeżenie: (0%)
-----


Cytat(mmmmmmm @ 15.01.2015, 20:25:20 ) *
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?

Cytat(Pyton_000 @ 15.01.2015, 19:59:51 ) *
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 smile.gif



Mógłbyś jaśniej, bo naprawdę nic nie załapałem. Chociaż jakiś obrazek, albo trochę bardziej szczegółowo.
Dzięki
Go to the top of the page
+Quote Post
Pyton_000
post
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
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: 19.08.2025 - 19:17