![]() |
![]() |
![]() ![]()
Post
#1
|
|
Grupa: Zarejestrowani Postów: 32 Pomógł: 0 Dołączył: 22.02.2012 Ostrzeżenie: (0%) ![]() ![]() |
Trzy pytania do bardziej zaawansowany w MySQL i PHP
1. Mam dwie tabele w bazie danych np: Tabela1 |id|nazwisko|imię|data|liczba| kolumna id jest kluczem podstawowym Tabela2 |id|dane przetworzone|liczba przetworzone| tu to samo id jest kluczem podstawowym dane do tej tabeli będą wprowadzane dopiero po wyciągnięci i przetworzeniu Czyli aby połączyć relatywnie te dwie tabele kluczem obcym ma być kolumna id ? 2. Jak zrobić aby każdy pojedynczy wiersz z Tabeli2 odpowiadał wierszowi z Tabeli1 , tak aby dane z wiersza tabeil1 id=1 były przetworzone i zapisane do wiersza tabeli2 o id=1 ? Aby nie było przekłamań a dane były powiązane między tabelami. 3. Czy jest to odpowiedni sposób, po łączeniu do bazy danych MySQL dodawać wiele rekordów za pomocą pętli czy istnieje lepsze rozwiązanie?
|
|
|
![]() |
![]()
Post
#2
|
|
![]() Grupa: Zarejestrowani Postów: 763 Pomógł: 117 Dołączył: 15.03.2010 Skąd: void Ostrzeżenie: (0%) ![]() ![]() |
1. Zależy jakiego typu relację chcesz utworzyć, 1-1, wiele-1, 1-wiele, wiele-wiele? W przypadku 1-1 możesz zwyczajnie połączyć id Tabela1 z id Tabela2, w innym wypadku przyda się dodatkowa kolumna.
2. Patrz wyżej, relacja 1-1. Wyłącz na jednej z kolumn auto increment, i wstawiaj do niej id wyciągnięty z drugiej. 3. Lepiej używać PDO. Pamiętaj o filtrowaniu danych. Generalnie ok. Ten post edytował modern-web 4.12.2014, 11:56:55 -------------------- Pomogłem? Kliknij `Pomógł`. To nic nie kosztuje, a mnie usatysfakcjonuje! ;)
|
|
|
![]()
Post
#3
|
|
![]() Grupa: Zarejestrowani Postów: 340 Pomógł: 46 Dołączył: 31.07.2009 Skąd: A Ostrzeżenie: (0%) ![]() ![]() |
Dla relacji 1:1 czyli dla dowolnego rekordu z Tableli1 może istnieć co najwyższej jeden odpowiadający rekord w Tabeli2
wtedy Tablea2 musi mieć na kluczu obcym założone primary key (klucz podstawowy, co gwarantuje ze będzie unikalne) i założone Constraint (ograniczenie).
Wrzucanie INSERET'a w pętle nie jest optymalne, lepiej jest zrobić jeden INSERT, dla wszystkich danych:
|
|
|
![]()
Post
#4
|
|
Grupa: Zarejestrowani Postów: 32 Pomógł: 0 Dołączył: 22.02.2012 Ostrzeżenie: (0%) ![]() ![]() |
dzięki za bardzo szybką odpowiedź, co do tematu
1. raczej tabele będą w relacji 1do1 2. modern-web Cytat 2. Patrz wyżej, relacja 1-1. Wyłącz na jednej z kolumn auto increment, i wstawiaj do niej id wyciągnięty z drugiej. czyli id z tableli1 ma być kluczem obcym dla tabeli2 Dalej idąc tym tokiem myślowym pytani z PHP biblioteka PDO jak podpinam zmienną do zapytania np:
Czy zmienna $dane[1] musi zawierać wartość , jak podpiąć zmienną która może być pusta. Ten post edytował mako11 7.12.2014, 12:23:42 |
|
|
![]()
Post
#5
|
|
![]() Grupa: Zarejestrowani Postów: 4 291 Pomógł: 829 Dołączył: 14.02.2009 Skąd: łódź Ostrzeżenie: (0%) ![]() ![]() |
Może być pusta wartość, ale taki indeks w tablicy musi istnieć.
|
|
|
![]() ![]() |
![]() |
Wersja Lo-Fi | Aktualny czas: 24.07.2025 - 16:12 |