![]() |
![]() |
![]()
Post
#1
|
|
![]() Grupa: Zarejestrowani Postów: 295 Pomógł: 7 Dołączył: 26.03.2004 Skąd: Opole Ostrzeżenie: (0%) ![]() ![]() |
Czy MYSQL obsługuje relacje, które na stałe są zapisane w bazie? Nie chodzi mi o zwykłe łączenie tabel innerami itd. tylko o dosłownie zdefiniowane (istniejące cały czas a nie definiowane podczas zadawania zapytania) relacje w bazie danych (które tabele, jakimi kluczami sie łączą) tak jak działa to w innych systemach baz danych (nawet w MSAcces) Potrzebne mi to jest do szybkiego tworzenia formularzy na podstawie pojedyńczych zapytań do bazy. Dzięki relacjom taki np MSaccess podczas generowania formularzy wie, które pola zapytania maja być polami tekstowymi, a które listami select pobierającymi liste dozwolonych wartości z relacyjnie dowiązanej do pola tabeli .
-------------------- |
|
|
![]() |
![]() ![]()
Post
#2
|
|
![]() Grupa: Zarejestrowani Postów: 569 Pomógł: 0 Dołączył: 17.08.2003 Skąd: Dąbrowa Górnicza Ostrzeżenie: (0%) ![]() ![]() |
moze chodzi ci o foreign key ? a moze o widok nie wiem jakos tak dziwnie to wytlumaczyłeś.
-------------------- Warsztat: Linux: PHP, MySQL, Apache, NetBeans, C++, Qt-Creator
Użytkownik, słowo którego specjaliści IT używają, gdy chcą powiedzieć idiota Zarządzaj swoim budżetem domowym |
|
|
![]()
Post
#3
|
|
![]() Grupa: Zarejestrowani Postów: 295 Pomógł: 7 Dołączył: 26.03.2004 Skąd: Opole Ostrzeżenie: (0%) ![]() ![]() |
Chyba niezupełnie o to chodzi. Klucze obce bardziej służą ochronie integralności danych niż opisywaniu struktury logicznej.
Wiem, że niektóre bazy danych zawierają w sobie zdefiniowany zapis relacji. Tak naprawde wszystkie tabele w bazie danych jakiegoś programu są ze soba powiązane a logika tego powiązania jest w miare stała i wynika z projektu aplikacji bazodanowej. Możemy to nazwać "mapą relacji" Tak wygląda ona np w MSAcess: ![]() Np. mam tabele ze słownikiem nazw ulic, słownikiem dostawców rur, materiałów rur itd. Mam tez tabele która przypisuje ulicy, dostawce,materiał i długość rury | id_ulicy | id_dostawcy | id_materialu | dlugosc_rury | I kiedy np. chcę wyświetlic formularz edycji rekordu w tej tabeli to musze wykonać szereg zapytań pomocniczych dzięki którym mogę stworzyć stosowne listy wyboru. Np. Muszę wyświetlić liste nazw ulic w danym mieście żeby uzytkownik wybrał ulice ze słownika ulic, czy wybrał odpowiedniego dostawcę Gdyby w bazie były zapisane te relacje tabela1.klucz - tabela2.klucz skrypt sam wiedziałby kiedy w formularzu ma wypisać pole tekstowe z pojedyńczą wartościa do wpisania, a kiedy liste wyboru z wybrana (bieżącą) wartością. Po co mam implementować relacje (inner join, czy widoki) za każdym razem jak chce coś pobrać czy wyświetlić skoro są one stałe. Chodzi mi o to, żeby do skryptu tworzącego formularz przekazac tylko jedno zapytanie SQL a on sam ma wiedzieć co jak wyświetlic odczytując informacje z mapy relacji. Pewnie nieźle zamieszałem ![]() -------------------- |
|
|
![]()
Post
#4
|
|
![]() Grupa: Przyjaciele php.pl Postów: 5 724 Pomógł: 259 Dołączył: 13.04.2004 Skąd: N/A Ostrzeżenie: (0%) ![]() ![]() |
Cytat Klucze obce bardziej służą ochronie integralności danych niż opisywaniu struktury logicznej. Tja, a czym sa te kreski miedzy tabelami i te wszystkie ID_czegostam? To sa wlasnie klucze obce. Wzkazuja one polaczenia miedzy tabelami.Cytat I kiedy np. chcę wyświetlic formularz edycji rekordu w tej tabeli to musze wykonać szereg zapytań pomocniczych dzięki którym mogę stworzyć stosowne listy wyboru. Np. Muszę wyświetlić liste nazw ulic w danym mieście żeby uzytkownik wybrał ulice ze słownika ulic, czy wybrał odpowiedniego dostawcę A jaki problem w napisaniu funkcji pobierajacej liste ulic z danego miasta? Przeciez Access (nie mam, nie uzywam) to tez robi, musi pobrac liste ulic i wrzucic je do <select>A No niby da sie to zrobic jednym zapytaniem (OUTER JOIN tak aby wybrac ulice i polaczyc z miastami i userami -- tylko znajdz potem tego usera ktorego chcesz edytowac...) ale jest to zagmatwane i prosciej zrobic to dwoma -- pobrac rekord usera i pozniej liste ulic z danego miasta. -------------------- Nie lubię jednorożców.
|
|
|
![]() ![]()
Post
#5
|
|
![]() Grupa: Zarejestrowani Postów: 569 Pomógł: 0 Dołączył: 17.08.2003 Skąd: Dąbrowa Górnicza Ostrzeżenie: (0%) ![]() ![]() |
aha, no to sory, ale ty szukasz skryptu budujacego formularz a nie zapytania sql.
Zachowując standard nazewnictwa kolumn w bazie to kolumna powiedzmy car_id powinna odwolywac sie do tablicy cars lub car zalezy od zlozonosci. Wiec to nie baza ale skrypt jest wymagany chyba. -------------------- Warsztat: Linux: PHP, MySQL, Apache, NetBeans, C++, Qt-Creator
Użytkownik, słowo którego specjaliści IT używają, gdy chcą powiedzieć idiota Zarządzaj swoim budżetem domowym |
|
|
![]() ![]() |
![]() |
Wersja Lo-Fi | Aktualny czas: 19.07.2025 - 05:47 |