![]() |
![]() ![]() |
![]() |
![]()
Post
#1
|
|
Grupa: Zarejestrowani Postów: 20 Pomógł: 0 Dołączył: 28.09.2005 Ostrzeżenie: (0%) ![]() ![]() |
Witam
Cala baze danych tworze poprzez wykonanie pliku .sql Mam nastepujace pytania: 1. Czy plik .sql mozna wykonac poprzez php? 2. Czy mozna tworzyc relacje bezposrednio .sql'em? 3. Jak dokladnie dziala 'Widok relacyjny' z phpMyAdmina? Chodzi mi konkretnie o 'wewnetrzne relacje', 'innoDB', 'wybierz wyswietlane pole'? W ktora strone dzialaja ktore relacje? Od tabeli "przegladanej" do tych pozostalych? Czy odwrotnie? Co oznacza dymek "brak zdefiniowanego indeksu"? Bo juz sie troche pogubilem(do tej pory intuicyjnie korzystalem z kluczy obcych o tych samych nazwach co klucz z tabeli 'obcej' ale teraz mi zalezy zeby ta nazwa byla inna) a nigdzie nie moge znalezc pomocy na ten temat. Ma ktos moze jakis gotowy przyklad/opis ustawiania tych relacji? Z gory dziekuje za odpowiedz Pozdrawiam Michał Malus Ten post edytował piratt 4.10.2005, 21:02:42 |
|
|
![]()
Post
#2
|
|
Grupa: Zarejestrowani Postów: 1 660 Pomógł: 13 Dołączył: 9.06.2004 Skąd: Wrocław i okolice Ostrzeżenie: (0%) ![]() ![]() |
Cytat 1. Czy plik .sql mozna wykonac poprzez php? Można Cytat 2. Czy mozna tworzyc relacje bezposrednio .sql'em? Mnie się wydaje, że MySQL nie jest typową "relacyjną bazą danych", relacje można tworzyć w zapytaniach - przy każdym zapytaniu. Cytat 3. Jak dokladnie dziala 'Widok relacyjny' z phpMyAdmina? Chodzi mi konkretnie o 'wewnetrzne relacje', 'innoDB', 'wybierz wyswietlane pole'? W ktora strone dzialaja ktore relacje? Od tabeli "przegladanej" do tych pozostalych? Czy odwrotnie? Co oznacza dymek "brak zdefiniowanego indeksu"? Bo juz sie troche pogubilem(do tej pory intuicyjnie korzystalem z kluczy obcych o tych samych nazwach co klucz z tabeli 'obcej' ale teraz mi zalezy zeby ta nazwa byla inna) a nigdzie nie moge znalezc pomocy na ten temat. Ma ktos moze jakis gotowy przyklad/opis ustawiania tych relacji? Nawet nie wiedziałem, że MyAdmin ma takie coś :/ akurat w tym Ci nie pomogę - sory. |
|
|
![]()
Post
#3
|
|
Grupa: Przyjaciele php.pl Postów: 2 923 Pomógł: 9 Dołączył: 25.10.2004 Skąd: Rzeszów - studia / Warszawa - praca Ostrzeżenie: (0%) ![]() ![]() |
Cytat Mnie się wydaje, że MySQL nie jest typową "relacyjną bazą danych", relacje można tworzyć w zapytaniach - przy każdym zapytaniu. Typowa to moze nie jest. Troszeczke mylisz pojecie co do relacji. |
|
|
![]()
Post
#4
|
|
Grupa: Zarejestrowani Postów: 20 Pomógł: 0 Dołączył: 28.09.2005 Ostrzeżenie: (0%) ![]() ![]() |
Hmm, troche powyzsze wypowiedzi nic nie wniosly do tematu;)
A co do relacji to chyba sa wlasnie po to zeby w zapytaniach miec mniej roboty do wykonania.. engine bazy sam 'domysla sie' jak ma traktowac pola, ktore sa powiazane. Znalazlem strony http://dev.mysql.com/doc/mysql/en/alter-table.html oraz http://dev.mysql.com/doc/mysql/en/innodb-f...onstraints.html i probuje zrozumiec jak to jest z tymi relacjami w mysql'u.. ale jakby ktos mial jakies informacje to bylbym wdzieczny. Pozdrawiam Michal |
|
|
![]()
Post
#5
|
|
Grupa: Zarejestrowani Postów: 398 Pomógł: 10 Dołączył: 24.11.2004 Skąd: Łódź Ostrzeżenie: (0%) ![]() ![]() |
W MySQL 4.1 tabele InnoDB można wiązać między sobą nakładając na nie odpowiednie ograniczenia.
To znaczy, że jeżeli na przykład tabelę x powiążesz z tabelą y polami: kluczem głównym tabeli x: x.xID i kluczem obcym tabeli y: y.xID, relacją x 1 do y wielu i tabela y będzie zawierała kilka rekordów należących do rekordu z tabeli x to ustawiając odpowiednie ograniczenia jak np. usuniesz rekord z tabeli x to automatycznie z tabeli y zostaną usunięte wszystkie powiązane rekordy, a próbując usunąć z tabeli y rekord przyporządkowany rekordowi z tabeli x baza poinformuje Cię o błędzie że nie można usuwać powiązanego rekordu. Na tym między innymi polega działanie relacyjnej bazy danych. Ten post edytował NoiseMc 4.10.2005, 22:42:17 |
|
|
![]()
Post
#6
|
|
Grupa: Zarejestrowani Postów: 85 Pomógł: 0 Dołączył: 15.07.2005 Ostrzeżenie: (0%) ![]() ![]() |
erm (IMG:http://forum.php.pl/style_emoticons/default/dry.gif) relacje - zaleznosci pomiedzy tabelami
przy tworzeniu tabel mozna okreslic relacje (constraint) pomiedzy nimi i wtedy baza pilnuje zebys wprowadzajac, usuwajac i modyfikujac czegos nie zepsul np nie pozwala usunac rekordu do ktorego odwolujemy sie w inej tabeli a co do odpowiedzi na pytanie to mysql obsluguje przynajmniej czesciowo relacje ad 2 tak np. ALTER TABLE `xxx` ADD CONSTRAINT `nazwarelacji` FOREIGN KEY (`pole_w_xxx`) REFERENCES `yyy` (`pole_w_yyy`); ad 3 co do tego dymka to pola powiazane relacja w obu tabelach musza miec indeksy no i byc tego samego typu (IMG:http://forum.php.pl/style_emoticons/default/smile.gif) aby w phpmyadminie ustawic relacje pomiedzy 2 tabelami musisz wejsc na tabele ktora ma sie odwolywac do wartosci z innej tabeli w moim przykladzie xxx wchodzisz w widok relacyjny i pokazuja ci sie wszystkie pola ktore mozesz wykorzystac do stworzenia relacji w kolumnie z innodb wybierasz z menu tabele i pole z ktorego wartosci maja byc pobierane (yyy->pole_w_yyy) nastepnie tryb relacji standartowo jest restrict (jak nic nie wybierzesz tez o ile dobrze pamietam) po stworzeniu relacji nie uda ci sie dodac wartosci do pole_w_xxx jesli nie bedzie ona wystepowala w pole_w_yyy jesli oczywiscie ustawiles typ relacji na restrict ale o tym jak toto dziala w mysqlu jest w manualu od tejrze bazy btw obsluga widoku relacyjnego phpmyadmina jest w helpie od phpmyadmina opisane Edit widze ze ciutke wolno to pisalem (2 posty wskoczyly) ale opis uzycia phpmyadmina chyba sie do czegos przyda Ten post edytował popo 4.10.2005, 22:47:35 |
|
|
![]()
Post
#7
|
|
Grupa: Przyjaciele php.pl Postów: 2 923 Pomógł: 9 Dołączył: 25.10.2004 Skąd: Rzeszów - studia / Warszawa - praca Ostrzeżenie: (0%) ![]() ![]() |
Cytat A co do relacji to chyba sa wlasnie po to zeby w zapytaniach miec mniej roboty do wykonania.. Glupoty gadasz. Czy masz 2 tabele powiazane czy nie dalej tak samo zapytanie wyglada. Relacja to jest fizyczne wymuszenie pewnych wiezi medzy rekordami tabel, to co pisal @NoiseMc. Radze poczytac lepiej o relacyjnych bazach danych. A odnosnie jak to jest w MySQLu to tak jak w kazdej bazie klucz podstawowy i klucz obcy. Chyba nie musze tlumaczyc jak dziala. Wydaje mi sie ze problem masz w opanowaniu samego interfejsu phpmyadmina a nie stworzenie powiazan. Zawsze Ci zostaje SQL. |
|
|
![]()
Post
#8
|
|
Grupa: Zarejestrowani Postów: 20 Pomógł: 0 Dołączył: 28.09.2005 Ostrzeżenie: (0%) ![]() ![]() |
Dziekuje za wszystkie odpowiedzi, w zasadzie jest juz wszystko jasne.
Cytat Glupoty gadasz. Czy masz 2 tabele powiazane czy nie dalej tak samo zapytanie wyglada. Relacja to jest fizyczne wymuszenie pewnych wiezi medzy rekordami tabel, to co pisal @NoiseMc. Radze poczytac lepiej o relacyjnych bazach danych. Po prostu przyzwyczajenia z Accessa, ktory na podstawie ustalonych relacji pomaga automatycznie tworzyc zapytania SQL. Ale racja, to nie mechanizm relacyjnych baz danych tylko accessa;) Jeszcze tylko jakby mogl ktos napisac jak najlatwiej wykonac plik .sql (tu byl blad w poscie, nie chodzilo mi o plik accessa tylko zwykly plik .sql). Jest do tego jakies gotowe narzedzie czy trzeba wczytac plik, odpowiednio parsowac i przekazywac do mysql_query? Pozdrawiam Michał Ten post edytował piratt 4.10.2005, 23:08:44 |
|
|
![]()
Post
#9
|
|
Grupa: Zarejestrowani Postów: 85 Pomógł: 0 Dołączył: 15.07.2005 Ostrzeżenie: (0%) ![]() ![]() |
co do relacji wewnetrznych sa to relacje pomiedzy 'kolumnami' ze tak to nazwe w obrebie tej samej tabeli np moze byc tabela userzy z w postaci username,xxx,yyy,ostatnio_modyfikowal
i w tym prymitywnym przypadku ustawiamy relacje pomiedzy username i ostatnio_modyfikowal tak aby ta ostatnia mogla zawierac nazwy istniejacych userow czyli wartosci z kolumny username Edit erm co do importu plikow sql z accesa to jesli jest ten plik zgodny z sql92 i nie ma tam specyficznych dla accesa typow danych czy operacji (jesli sa to nie jest zgodny z sql 92) to zaimportowanie go do mysqla nie powinno byc problemem z phpmyadmin wybierasz sql wklejasz zapytanie i po robocie powinno zaskoczyc Ten post edytował popo 4.10.2005, 23:06:50 |
|
|
![]()
Post
#10
|
|
Grupa: Zarejestrowani Postów: 398 Pomógł: 10 Dołączył: 24.11.2004 Skąd: Łódź Ostrzeżenie: (0%) ![]() ![]() |
Jest kilka programów do zarządzania MySQL - em, z opcją importu danych z Accessa za pomocą ODBC.
Tu wynik z Google http://dev.mysql.com/downloads/ http://www.sqlmanager.net/products/mysql/manager i wiele innych. |
|
|
![]()
Post
#11
|
|
Grupa: Przyjaciele php.pl Postów: 2 923 Pomógł: 9 Dołączył: 25.10.2004 Skąd: Rzeszów - studia / Warszawa - praca Ostrzeżenie: (0%) ![]() ![]() |
Cytat Po prostu przyzwyczajenia z Accessa, ktory na podstawie ustalonych relacji pomaga automatycznie tworzyc zapytania SQL. Ale racja, to nie mechanizm relacyjnych baz danych tylko accessa;) Ale pod tym i tak kryje sie SQL gdzie wszystko jest standardowo. |
|
|
![]() ![]() |
![]() |
Aktualny czas: 16.10.2025 - 22:07 |