Fitoplankton
#naukaprogramowania #python #django
Mam taką zagwozdkę mirki. Rozwiązanie jest zapewne banalne, ale nie mam pomysłu, jak do tego podejść.
Chciałbym, aby każdy użytkownik po rejestracji otrzymywał wydzielone dla siebie 2 tabele (jeśli nie mam jakichś błędów w rozumowaniu, to można je utożsamić z modelami). Każda para będzie identyczna dla każdego użytkownika (będzie zawierać te same pola), różnica polegałaby tylko na nazwie (n.p. dodanym id po nazwie modelu).

Jest na to jakiś sposób? Jak na razie odgrzebałem na SO dynamiczne tworzenie modeli, ale tam nawet pola są zmienne.
Jakimś rozwiązaniem byłoby też dodanie w tych dwu modelach obcego klucza w postaci id użytkownika do każdego rekordu, ale to wydaje się nieco brutalne.

Jakieś rady? Dzięki z góry ( ͡° ͜ʖ ͡°)
  • Najlepsze
  • Wszystkie komentarze
L.....F
L.....F
@Fitoplankton: złe podejście
b.....r
b.....r
@Fitoplankton: a po co Ci dwie takie same tabele? bo chyba tutaj leży błąd
L.....F
L.....F
@Fitoplankton: dokładnie tak.
b.....r
b.....r
@Fitoplankton: nie mozesz uzależniać modelu bazy danych od konkretnych danych, nie liczac widoków. moim zdaniem podejscie jest błedne i mialbyś z nim mega duzo problemow
morsik
morsik
morsik
  • adult
1
Treść przeznaczona dla osób powyżej 18 roku życia...
S.....c
S.....c
@morsik: zgadzam się, ale grzebanie na poziomie bazy korzystając z django zdarza się rzadko i większości przypadków oznacza, że robi się coś źle - jak w powyższym przykładzie
morsik
morsik
@Fitoplankton: 1000. CO :D
To nawet SQLite by to ogarnął (ale nie rób tego… :P)
morsik
morsik
@Fitoplankton: Nie sugeruj się tym PostgreSQL. Oni po prostu lubią, Ty nie musisz. Każdy używa tego czego lubi ;)
MariaDB jest kompatybilna z MySQL. Możesz używać.
morsik
morsik
@Fitoplankton: btw myślenie o partycjonowaniu zaczyna się od setek tysięcy :P
Fitoplankton
Fitoplankton Autor
0
@beeper: nie nie, one będą różne, z zupełnie różnymi polami. Chodzi mi o przydzielenie takiej pary dwu różnych tabel dla każdego użytkownika
L.....F
L.....F
@Fitoplankton: chodzi o wpisy w dwóch różnych tabelach? Nie chcesz tworzyć tabel dynamicznie.
L.....F
L.....F
nie nie, one będą różne, z zupełnie różnymi polami.


@Fitoplankton: coś robisz źle. Co chcesz osiągnąć?
S.....c
S.....c
Treść przeznaczona dla osób powyżej 18 roku życia...
b.....r
b.....r
@Fitoplankton: przedstawbco chcesz osiagnać bo cieżko sobie to wyobrazić
Fitoplankton
Fitoplankton Autor
0
@LOLWTF: @Szarlejowiec: będę używał ich do przetrzymywania danych potrzebnych do obsługi generatora list czytających (mój ostatni post w programowaniu). W pierwszej tabeli będą przetrzymywane osoby - imię, 3 wartości bool i jeden int zliczający ilośc wystąpień w liście (potrzebny do sortowania).

W drugiej tabeli będą przetrzymywane historyczne generacje list (używane do odtworzenia starszych aktów generacji).

I chciałbym, żeby każdy user miał swoje własne tabele, aby nie trzymać tego
b.....r
b.....r
@Fitoplankton: czyli jak bedziesz miał tysiąc userów to chcesz mieć tysiąc tabel?
Fitoplankton
Fitoplankton Autor
0
@LOLWTF: @beeper: powinienem wrzucić to do dwu wielkich tabel?
Fitoplankton
Fitoplankton Autor
0
@LOLWTF: @beeper: ok, po przemyśleniu to wydaje się być najlepszą opcją. W szczególności, że z django dopiero się zapoznaję i zbytnie "chachmęcenie" raczej mi nie pomoże. Już nawet nie wspominając kwestii, że złożenie do kupy tego wszystkiego przy dwu statycznych modelach będzie pierdyliardy razy prostsze. Dzięki za pomoc :)
ksiak
ksiak
@Fitoplankton: jak będziesz miał dużo wpisów to zawsze możesz partycjonować tabele.
@beeper: czasami można a nawet trzeba tak uzależniać.
Fitoplankton
Fitoplankton Autor
0
@ksiak: to partycjonowanie jest bardzo ciekawe! Nawet gdzieś hasła o tym przewijają się po GitHubie (w kontekście samego django. Partycjonowanie odbywa się na płaszczyźnie samej bazy danych przy zachowaniu kompatybilności z django). To też poleciało do zakładek, dzięki :)