![]() |
![]() ![]() |
![]() |
![]()
Post
#1
|
|
Grupa: Zarejestrowani Postów: 9 Pomógł: 0 Dołączył: 30.04.2006 Ostrzeżenie: (0%) ![]() ![]() |
Tytuł możliwe że nie brzmi zbyt mądrze, ale oddaje sedno problemu,
na stronie każdy z użytkowników (a będzie ich wielu, możliwe że bardzo bardzo wielu) będzie dodawał artykuły, każdy artykuł będzie miał kilka właściwości, dlatego nie będą mogły być dodawane do tabeli z użytkownikami, to po prostu niewykonalne, szczególnie że każdy z jego właściwości chciałbym efektywnie wyszukiwać, mógłbym stworzyć jedną tabelę dla artykułów i do niej dopisywać kolejne artykuły/produkty, ale [użytkownicy * kilkakrotnie więcej artykułów niż użytkowników] oznacza bardzo dużą tabelę, co może skutkować długą odpowiedzią bazy przy próbie wyłuskania produktów przypisancych do jednego usera, dlatego myślę że najlepiej będzie przy tworzeniu usera w tabeli users tworzyć nową tabelę produkty_userId, co poskutkuje prawdopodobnie szybką odpowiedzią serwera przy zapytaniu o listę produktów tego usera, a to ona będzie wyświetlana najczęściej... dobrze myślę ? czy może dla silnika bazy danych nie będzie problemem wyłuskanie z jednej tabeli po id usera ? Ten post edytował eyedropper 22.03.2013, 20:32:18 |
|
|
![]()
Post
#2
|
|
Grupa: Zarejestrowani Postów: 616 Pomógł: 84 Dołączył: 29.11.2006 Skąd: bełchatów Ostrzeżenie: (0%) ![]() ![]() |
|
|
|
![]()
Post
#3
|
|
Grupa: Zarejestrowani Postów: 9 Pomógł: 0 Dołączył: 30.04.2006 Ostrzeżenie: (0%) ![]() ![]() |
tak, Tylko że jeśli tam ma być tabela do każdego usera powinna mieć unikalną nazwę - schemat tego nie sugeruje
chyba że widzisz to tak że wszystkie artykuły są wstawiane do jednej tabeli moje pytanie dotyczy bardziej możliwości silnika mysql i sposobu jego działania / przetwarzania danych niż tego jak zbudować tą relację Ten post edytował eyedropper 22.03.2013, 20:34:36 |
|
|
![]()
Post
#4
|
|
Grupa: Zarejestrowani Postów: 91 Pomógł: 4 Dołączył: 14.10.2012 Ostrzeżenie: (0%) ![]() ![]() |
Bardzo głupi pomysł. Lepiej zrobić to w jednej tabeli.
|
|
|
![]()
Post
#5
|
|
Grupa: Zarejestrowani Postów: 9 Pomógł: 0 Dołączył: 30.04.2006 Ostrzeżenie: (0%) ![]() ![]() |
dlaczego ?
gdyby to był mała stronka bym to zamknął w dwóch tabelach, ale to może spuchnąć, może być problem z wydajnością przy tak dużej tabeli, no właśnie, tu nie jestem do końca pewny, może dla mysql nie ma różnicy ? między jedną tabelą a wieloma tabelami - jedna dla każdego usera. Ten post edytował eyedropper 23.03.2013, 10:59:29 |
|
|
![]()
Post
#6
|
|
Grupa: Zarejestrowani Postów: 616 Pomógł: 84 Dołączył: 29.11.2006 Skąd: bełchatów Ostrzeżenie: (0%) ![]() ![]() |
pomyśl masz 50 tys użytkowników i będziesz tworzył 50 tys tabel z artykułami ?. Wyobraź sobie , że musisz pokazać artykuły użytkowników w liczbie np 10 tys.
Spróbuj napisać takie zapytanie. Jeżeli będziesz filtrował tabele to tabela może mieć miliony rekordów. Ten post edytował memory 23.03.2013, 12:27:36 |
|
|
![]()
Post
#7
|
|
Grupa: Zarejestrowani Postów: 9 Pomógł: 0 Dołączył: 30.04.2006 Ostrzeżenie: (0%) ![]() ![]() |
i to rzeczywiście jest słabość tego rozwiązania, żeby dostać się do wielu tabel musiałbym wyłuskiwać nazwy tabel z tabeli users a potem jeszcze raz przekopywać baze wyciągając z tabel...
nie ma to sensu Ten post edytował eyedropper 23.03.2013, 14:14:45 |
|
|
![]() ![]() |
![]() |
Wersja Lo-Fi | Aktualny czas: 29.06.2025 - 06:29 |