2012-03-28 9 views
0

Ich versuche, mit so etwas wie dies funktioniert: (Ich brauche die Benutzer-Tabelle aufzuspalten) hierDataMapper CodeIgniter Beziehung One to One

=================== 

table users 


id | pseudo | password 
id PK 

=================== 

table users_infos 

user_id | stats | etc etc 
user_id FK (>users>id) 

=================== 

model user 

$has_one = array('users_info) 

model users_info 

$has_one = array('user) 

// 

Mein Problem vom Tisch kommt users_infos. Ohne Feld Id kann ich die Speichermethode nicht zum Aktualisieren verwenden. Ich versuche die Spalte user_id in id umzuschreiben, aber dann verliere ich den Fremdschlüssel von DataMapper. Was ist der beste Weg, um das zu beheben?

Antwort

0

Sie könnten versuchen, es zu einem Verhältnis von eins zu vielen machen ein Feld auf der Benutzertabelle und machen es einzigartig.

auch die user_id Feld nur id

wie diese auf users_info ändern

Modelle sollten sein: Modell Benutzer $ has_one = array ('users_info')

model users_info 
$has_one = array('user') 

Auf diese Weise sollte es funktionieren.

0

Jede Tabelle sollte eine ID-Spalte haben, die benötigt wird.

Idealerweise ist es als Autoinkrement definiert und sollte nicht immer eine Bedeutung haben. Die 'ID' ist nur eine Möglichkeit, die korrekte Tabellenzeile eindeutig zu identifizieren.

Sie müssen Relationen auf beide Arten definieren, damit die vorherige Antwort nicht funktioniert.