pytajacy
21.06.2013, 12:10:16
Witam mam bazę danych gdzie mam 3 tabele :
nazwa , typ , los
2 pierwsze są logiczne lecz to tabeli los chciałbym wrzucić kilka zestawów danych głownie chodzi mi o id z innych kolumn
nie jestem pewny też jak by ta tabela powinna wyglądać.
przykładowe uzupełnienie :
Nazwa | 1 | 7,5,1,3; 1;6,5;9,6,15;5
, rozdziela id które wchodzi w skład zestawu
; rozdziela zestawy
nie jestem pewny czy tak się da.
pytajacy
21.06.2013, 12:16:24
Fakt nie zadałem pytania. Jak to zrobić ?
b4rt3kk
21.06.2013, 12:36:02
Cytat(pytajacy @ 21.06.2013, 13:16:24 )

Fakt nie zadałem pytania. Jak to zrobić ?
Kwestia jeszcze tego jak chcesz to zrobić? Jednym zapytaniem sql czy jakąś funkcją w php?
pytajacy
21.06.2013, 12:46:02
dla mnie w tej chwili bez różnicy ale załóżmy takie rozwiązanie które teoretycznie mniej serwer obciąży. Załóżmy też że nie będzie więcej niż 6 id w jednym zestawie i nigdy nie będzie więcej niż 15 zestawów za tor rekordów będą tysiące i będą często używane
b4rt3kk
21.06.2013, 13:09:01
Przychodzi mi na myśl takie rozwiązanie:
$query = "SELECT id FROM tabela ORDER BY RAND() LIMIT 24";
// przetworzenie zapytania
// zrób tak by otrzymać tablicę z wartościami ID
// złącz wedle uznania tablicę do jednego ciągu rozdzielonego tak jak mówisz
$query = "INSERT INTO los VALUES ('', '', '$string')";
pytajacy
21.06.2013, 13:58:38
nie o to mi chodzi. teraz czytam to jeszcze raz i widzę że nie wyraziłem się jasno.
Chcę mieć taką tabelę o nazwie "Pola"
w niej takie kolumny jak
Id |Nazwa | typ | los
to jest ten błąd który teraz zauważyłem. chciałbym do jednego rekordu w kolumnie "los" dać kilka zestawów danych( tablic zmiennych. nie wiem jak to rozwiązać właśnie) Chciałbym pobierać jedną kolumnę i mieć te zestawy wszystkie lub jeden losowy odrazu po pobraniu. Dokładniejszy przykład :
1 | Jakaś nazwa | 100 |
1,5,6,9,5,2 - Pojedynczy zestaw danych
6,9,7,6,0,0
11,69,75,1,1,0
2,2,2,2,2,2,2
te numerki to by były id z innych tabel wszystko wpisywane ręcznie.
to będą dane stałe, które raz wprowadzone nigdy nie ulegną zmianie lecz będą często wykorzystywane więc muszę postawić na maksymalną wydajność.
Ja widzę 2 opcję rozwiązania tego problemu, lecz wiem że nie są one zbyt dobre a wręcz tragiczne
jedna to zapisać wszystko do pliku i korzystać z pliku, lecz przy tysiącach tych rekordów otwieranych przez jednego użytkownika 200-300 razy dziennie i przy kilkuset użytkownikach mocno obciąży serwer.
drugą opcją będzie stworzenie sporej liczby tabel gdzie wrzucę w jakiś sposób te kilka id i będę w pliku losował który nr tabeli ma pobrać - myśle że to 2 nie jest bardzo tragicznym rozwiązaniem, choć pewnie spowoduje dość duży rozrost bazy danych