PDA

Zobacz pełną wersję : Tworzenie tabel podczas rejestracji użytkownika



Takashi
17-09-2011, 18:42
Witajcie!
Problem polega na tym, że potrzebuję aby podczas tworzenia użytkownika pojawiły się dokładnie 3 nowe tabele w bazie MYSQL. Powiedzmy, że mam nowego użytkownika Jan Kowalski i chce by były 3 dodatkowe tabele:
kowalski_dane
kowalski_ksiazka
kowalski_historia
Jakieś podpowiedzi, gdzie powinienem zacząć grzebać i jak to ugryźć - będę wdzięczny.
Z Joomla!

zwiastun
17-09-2011, 19:56
Powinieneś poczytać o projektowaniu komponentów dla Joomla! Na pewno nie od "grzebania" w kodzie któregokolwiek z komponentów obsługującego konta użytkowników.

Takashi
20-09-2011, 20:35
Posuchalem, poczytalem, popatrzalem, przeanalizowalem i:
1) nie do konca rozumiem model MVC (ale bede sie w niego zaglebial)
2) wiem gdie należy dodac elementy które chce (com_user/views/register/tmpl)
3) niestety nie wiem jak zaimplementować moj kod by Jommla go zaakceptowala i tu mam prosbe mozecie mi podpowiedziec co powinienem zrobić? czy źle implementuje kod SQL przez php i daje ciala czy powinienem tylko wrzucic wykonanie pliku zwenetrznego, ktory bedzie wkonywal polecenia SQL.

palyga007
20-09-2011, 21:46
Problem polega na tym, że potrzebuję aby podczas tworzenia użytkownika pojawiły się dokładnie 3 nowe tabele w bazie MYSQL

A co jeśli zarejestruje się 300 użytkowników?
będziesz miał 900 dodatkowych tabel w bazie?

To co chcesz zrobić pozbawione jest sensu i logiki.

Tworzysz 3 tabele dane książka historia + ew tabela użytkownicy.

Popatrz jak to jest zrobione w Joomla!.
Przecież każdy użytkownik nie ma dla siebie osobnych tabel dla artykułów, reklam ogłoszeń itp.

Takashi
21-09-2011, 09:29
owszem, ale artykuly, reklamy ogloszenia itp są raczej ogólnodostępne, ew jest podział na grupy typu ogólnodostepny, rejestrowalny, specjany, a ja potrzebuję stworzyc tabele by każdy użytkownik miał swoje indywidualne dane, tak jak powiedzmy ksiażka kontaktów, sadzisz, że lepiej bedzie pakować wszystko w jedną tabelę, a później ją filtrować do uzyskania wypisu? to chyba bardziej obciazy serwer niz kilka set czy kilka tysiecy tabel. Jeśli się myle z checia wysłucham opini kolegów po fachu :)

PeFik
21-09-2011, 10:49
p.s.
Jaka Joomla 1.7 / 1.5 ? Może jakiś komponent by ci ułatwił życie.

Takashi
21-09-2011, 13:19
joomla 1.5 szukałem już i niestety nic nie znalazłem czegoś co by mi pomogło. pomógłby mi jakiś dobrze napisany kurs pisania komponentów, bo mnie wszystko sie sypie gdy zaczynam pisać wiecej niz trzy widoki w jednym modelu... jak cos pisze na podstawie kursku wromanka.

PeFik
21-09-2011, 14:37
Ja bym się nie silił na pisanie, tylko bym użył komponent ExtendedReg - rozbudowana rejestracja

palyga007
21-09-2011, 23:21
owszem, ale artykuly, reklamy ogloszenia itp są raczej ogólnodostępne, ew jest podział na grupy typu ogólnodostepny, rejestrowalny, specjany, a ja potrzebuję stworzyc tabele by każdy użytkownik miał swoje indywidualne dane,
To nie jest problem.

Nadal uważam, że pomysł tworzenia dla każdego użytkownika osobnych 3 tabel jest dość "egzotyczny" i ja osobiście zrobiłbym to inaczej, ale może niech się wypowie ktoś kto posiada w tym względzie większe doświadczenie od mojego.

zwiastun
21-09-2011, 23:56
Napisałem już to oględnie w pierwszym poście. Zabieranie się za programowanie komponentu bez zrozumienia, na jakich zasadach działa Joomla!, a jak przypuszczam także, niezbyt dużym doświadczeniu programistycznym (nieumiejętność operowania relacyjną bazą danych , związkami między danymi w powiązanych tabelach) nie ma najmniejszego sensu.
Do obsługi biblioteki - czytelni - wypożyczalni - można znaleźć komponenty darmowe/płatne. Na pewno wyjdzie taniej, a przede wszystkim bezpieczniej niż programowanie na poziomie "nie do konca rozumiem model MVC" i "nie do końca rozumiem również to, o czym nawet nie wiem, że tak powinno wyglądać" sensu nie ma.

GrzesiekP
27-09-2011, 20:00
Tworzenie tabel dla każdego użytkownika to najgłupszy pomysł, jaki słyszałem do tej pory.

Po to masz coś takiego jak relacyjna baza danych, żeby sobie życie upraszczać, a nie utrudniać.
Poczytaj:
http://encyklopedia.helion.pl/index.php/Relacyjna_baza_danych

Jak już dojrzejesz do tego, że wystarczą tylko 3 tabele, to dodawanie rekordu użytkownika do tabeli "wypozyczalnia_uzytkownicy" podczas rejestracji możesz załatwić poprzez PLUGIN i zdarzenie np. "onUserAfterSave". Ale to już następna klasa ;)

faketa
28-09-2011, 23:36
takie zakładanie 3 tabel dla każdego usera można by wykorzystać jako dodatkowy chwyt marketingowy ;-)

PeFik
29-09-2011, 09:42
hmm, i przy 10tysiącach userów - twój dostawca hostingu, zrobi ci MySQL TURN OFF - a Ty ojoj.... czemu?

Biko
30-09-2011, 23:11
Zgadzam się z poprzednikami. Jakąś masakrę kolego wymyśliłeś z tymi oddzielnymi tabelami dla każdego usera. Zacznij może od jakiejś lektury na temat projektowania baz danych. Na Joomla! przyjdzie czas później, jeśli starczy Ci zaparcia. W każdym razie powodzenia.