![]() |
![]() |
![]()
Post
#1
|
|
Grupa: Zarejestrowani Postów: 22 Pomógł: 0 Dołączył: 24.04.2007 Ostrzeżenie: (0%) ![]() ![]() |
Witam
Mam dwie tabele które chciał bym by były w relacji 1 do 1 i teraz pytanie jak to zrobić technicznie. mam dwa pomysły. 1.Podejście 1 CREATE TABLE `tabela1` ( `id` int(11) NOT NULL AUTO_INCREMENT, `name` varchar(30) } CREATE TABLE `tabela2` ( `id` int(11) NOT NULL PRIMARY KEY, `inne` varchar(30) } Przy dodawaniu rekordu do tabeli jeden bedę dodawał do tabeli2 rekord o tym samym id co w tabeli jeden. czyli tabela1.id = tabela2.id 2.Podejście 2 CREATE TABLE `tabela1` ( `id` int(11) NOT NULL AUTO_INCREMENT, `name` varchar(30) } CREATE TABLE `tabela2` ( `id` int(11) NOT NULL AUTO_INCREMENT, `tabela1_id` int(11) NOT NULL , `inne` varchar(30) } Tu tabela2 będzie połączona poprzez pole 'tabela1_id' i przy dodawaniu rekordu do tabeli jeden bedę dodawał do tabeli2 rekord czyli tabela1.id = tabela2.tabela1_id Proszę o sugestie które podejście jest właściwsze i wygodniejsze w późniejszym użyciu, ewentualnie o inne pomysły jak wy to z realizowaliście Pozdrawiam |
|
|
![]() |
![]()
Post
#2
|
|
Grupa: Zarejestrowani Postów: 94 Pomógł: 31 Dołączył: 12.10.2008 Skąd: WAT Ostrzeżenie: (0%) ![]() ![]() |
Podejście drugie to przecież jeden do wielu. ;> W tabeli 2 da się wtedy przypiąć do kilku rekordów to samo id z tabeli 1. Chyba, że nałożysz Unika na tabela1_id tylko wtedy będziesz miał dwa indywidualne klucze dla każdego wiersza więc po co to. Jak masz powód żeby nie robić tutaj tylko jednej tabeli zamiast dwóch to tylko pierwsze podejście wchodzi w grę. Chociaż to też zależy od przeznaczenia tej relacji... Trochę za mało informacji żeby to jednoznacznie rozwiązać.
Ten post edytował YaQzi 19.07.2011, 10:10:14 |
|
|
![]() ![]() |
![]() |
Aktualny czas: 10.10.2025 - 19:59 |