baza access

0

Witam. W bazach danych nie mam zielonego pojęcia, ale wiem że jest możliwość zrobienia czegoś co bardzo ułatwi mi życie. Mam bazę danych w accesie (która również służy jako baza danych do tabeli przestawnej w excelu), którą chciałbym później wyeksportować do excela.
W skrócie wygląda ona tak:
-KATEGORIA (np. kurtki)
--ARTYKUŁ (nr katalogowy)
---ROZMIAR (np. XL)
----STAN (sztuki)

Problem polega na tym, że są artykuły które maja różne zestawy rozmiarowe np. artykuł 1 posiada rozmiary tylko S, M, L, a artykuł 2 posiada rozmiary S, M, L, XL, XXL.

Chciałbym zrobić grupy rozmiarowe, a efekt końcowy miałby wyglądać mniej wiecej tak:
-KATEGORIA
--GRUPA ROZMIAROWA (np. S/M/L S/XL S/M/L/XL itp)
---STAN

Jak taki problem rozwiązać, wiem że muszę poczytać przynajmniej podstawy z baz danych (możecie polecić jakiś samouczek internetowy?) ale też proszę o jakieś rozjaśnienie jak to zrobić.

0

Potrzebujesz 3 tabel:
W 1 tabeli trzymasz tak jak teraz informacje o artykułach
W 2 tabeli trzymasz rozmiary czyli S, M, L, XL, XXL itd.
W 3 tabeli trzymasz powiązania artykułów z rozmiarami.

Żeby otrzymać dane w takiej formie jak sobie życzysz musisz napisać kwerendę, która znajdzie wszystkie rozmiary dla danego artykułu i je poda w żądanej formie.

Poczytaj sobie co to jest kwerenda co to są złączenia (JOINS), jak napisać kwerendę, która kilka rekordów wyświetli jako jeden.

Ta stronka wydaje mi się zawierać przystępnie napisaną teorię:
http://www.access.best4u.pl/index.html

Kolejna strona zawiera bardzo dobre wprowadzenie w język SQL:
http://www.w3schools.com/sql/default.asp

0

pkt 3, czy to oznacza, że każdy produkt będę musiał ręcznie przypisać do jakiejś grupy rozmiarowej (a produktów jest kilkaset)?
A nie można skonstruować zapytania w stylu "pokaż tylko produkty, które mają rozmiary dokładnie S M L + nie posiadają XS + XL itp.
Ciężko jest mi sobie to wyobrazić bo nie mam doświadczenia z bazami, a jak napisałeś że trzeba tworzyć 3 tabele to już w ogóle wydaje mi się to coraz bardziej skomplikowane.

0

pkt 3, czy to oznacza, że każdy produkt będę musiał ręcznie przypisać do jakiejś grupy rozmiarowej (a produktów jest kilkaset)?

Oczywiście jeżeli ci się nudzi to możesz zrobić to ręcznie. Można to jednak zrobić za pomocą skryptu i zająć się czymś ciekawszym przez zaoszczędzony w ten sposób czas.

A nie można skonstruować zapytania w stylu "pokaż tylko produkty, które mają rozmiary dokładnie S M L + nie posiadają XS + XL itp.

Oczywiście, że możesz tego nie robić i po prostu wyszukiwać w polu z rozmiarami tych właściwych. Jednak takie rozwiązanie będzie nieprawidłowe z punktu widzenia poprawności baz danych oraz będzie skrajnie mało wydajne. Z drugiej strony jeżeli masz bazie tylko kilkaset i nie spodziewasz się mieć więcej pozycji to nie odczujesz tego spowolnienia tak bardzo.

Ciężko jest mi sobie to wyobrazić bo nie mam doświadczenia z bazami, a jak napisałeś że trzeba tworzyć 3 tabele to już w ogóle wydaje mi się to coraz bardziej skomplikowane.

Pracuje na co dzień na bazie w której jest ponad 6 tysięcy tabel (większość to co prawda tabelki tempowe ale jednak), 32 tysiące procedur, 3,5 tysiąca funkcji oraz 17 tysięcy viewsów, a konieczność joinowania kilkunastu tabel w jednym zapytaniu to dla mnie codzienność. Z mojego punktu widzenia baza z 3 tabelami i napisana jedna do tego kwerenda to banał.

1 użytkowników online, w tym zalogowanych: 0, gości: 1