Baza danych, podział tabeli

0

Witam, nie znam się na bazach danych i jak funkcjonują, dlatego mam taka wątpliwość dotyczące bazy danych mysql, mam bazę i tabele z jakimyś danymi, i tych danych przybywa, i teraz nie wiem, czy mam tak to zaprogramować, aby dane zapisywać do jednej tabeli co jest wygodniejsze, ale czy przy kilku tysiącach wierszy to nie wpłynie na efektywność działania strony?, czy podzielić ją na kilka tabeli?

0

Witam!
Moim skromnym zdaniem nie powinieneś dzielić tabel na mniejsze tabele! Latwiej i szybciej zawsze zadac zapytanie do jednej tabeli, a nie do kilku! Jezeli chodzi o efektywnosc dzialania bazy, to mysle ze baza jest nastawiona raczej na selecty, wiec powinienes ustawic indexy na kolumnach po ktorych najczesciej wyszukujesz! To znacznie zmniejszy czas dzialania bazy i strony.

0

Przy dobrze zaprojektowanej bazie danych roznice w szybkosci byc moze zobaczysz gdy bedzie wiele milionow rekordow :) A pewnie i tak najwiecej czasu bedzie zajmowac laczenie sie z baza i przesylanie danych.

0

Dzięki za rady :) ja nieufnie podchodzę do pc to dlatego się tak pytam :) Ale rozwialiście mi wąrpliwość, dzięki :)

0

Te powyzsze rady widze ze sa od osob ktore nie maja pojecia o bazach albo jedyna opcja to uzywanie SELECT * FROM...
wyobraz sobie taka tabele:

ID | firma nazwa | adres | produkt

1 | aspen | ul. jaja | buty
2 | aspen | ul.jaja | torba
...
...
...
1342 | aspen | ul.jaja | szelki
1343 | NIKE |ul. kuku | buty

i teraz jak zmieni sie nazwa firmy aspen na np ASPENX albo adres firmy
to co zrovisz skrypt co zamienia dane albo bedziess z recznie wpisywal?

nie moze by efektu REDUNDANCJI czyli wlasnie to co wyzej
amiast tego stosujesz mniejsze tabele np

TABELA : firmy

ID | nazwa
1 | aspen
2 | NIKE

itd

a tabelka z przykladu wyzej wyglada tak

ID | firma nazwa | adres | produkt

1 | 1 | ul. jaja | buty
2 | 1 | ul.jaja | torba
...
...
...
1342 | 1 | ul.jaja | szelki
1343 | 2 |ul. kuku | buty

wtedy zmieniajac nazwe firmy w tabeli jeden automatycznie
masz nowe nazwy do kwerend z tabeli BAZA

a zapytania sa proste. mozecie stosowac aliasy itd.
wiec jesli zawsze wsytepuje relacja WIELE do WIELU
trzeba rozbic na relacje WIELE do JEDNEGO i z tej samej tabeli JEDEN do WIELU

0

Ja tylko dodam, że to, co opisał Niuchaczd nazywa się normalizacją i należy do tego dążyć.

0
Niuchaczd napisał(a)

Te powyzsze rady widze ze sa od osob ktore nie maja pojecia o bazach albo jedyna opcja to uzywanie SELECT * FROM...
Ekspertem od baz nie jestem, ale wypowiadalem sie tylko na temat skalowalnosci jednej tabeli a nie na temat projektowania bazy.

Niuchaczd napisał(a)

i teraz jak zmieni sie nazwa firmy aspen na np ASPENX albo adres firmy
to co zrovisz skrypt co zamienia dane albo bedziess z recznie wpisywal?
Akurat w tym przypadku wystarczy takze dokladnie jeden UPDATE :P Co nie znaczy, ze bede twierdzil, ze to jest dobre rozwiazanie ;)

0

Jesli cos projektujemy robmy to profesjonalnie
kady sposob jest dobry ale trzeba wybrac najlepszy :)

0

No dobrze, ale jeżeli zaprogramujemy w oparciu o kilka tabel, to zwiększy się liczba odwołań do bazy, czyli stronka <ort>morze </ort>spowolnieć ?, mi chodzi o to żeby to było efektywne i szybkie :)

0

szybciej wywolac jedno zapytanie SQL do kilkudziescieu tabel
niz wyszukiwac rekordow i psrawdzac czy to ten czy nie ten ?
zdecydowanie powinienes isc na wyklady o projektowaniu bazy danych
a stronka nie ma nic do rzeczy czy wolnij czy szybciej

1 użytkowników online, w tym zalogowanych: 0, gości: 1, botów: 0