Zobacz pełną wersję : Tworzenie tabel podczas rejestracji użytkownika
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.
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.
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 :)
p.s.
Jaka Joomla 1.7 / 1.5 ? Może jakiś komponent by ci ułatwił życie.
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.
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 ;)
takie zakładanie 3 tabel dla każdego usera można by wykorzystać jako dodatkowy chwyt marketingowy ;-)
hmm, i przy 10tysiącach userów - twój dostawca hostingu, zrobi ci MySQL TURN OFF - a Ty ojoj.... czemu?
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.
vBulletin® v4.2.5, Prawa przedruku © 2024 vBulletin Solutions, Inc. Wszystkie prawa zastrzeżone.
Tłumaczenie: Polskie Centrum Joomla!