Witaj Gościu! ( Zaloguj | Rejestruj )

Forum PHP.pl

> [Kohana] 3 ORM $_has_one , czy $_has_many ?
phpowiec84
post 3.03.2011, 09:24:08
Post #1





Grupa: Zarejestrowani
Postów: 101
Pomógł: 2
Dołączył: 10.12.2010

Ostrzeżenie: (0%)
-----


Witam , mam pewien problem z połączeniem 2 tabel Mysql

mam tabelę session :

  1. CREATE TABLE IF NOT EXISTS `session` (
  2. `sid` varchar(32) NOT NULL,
  3. `user` int(10) UNSIGNED NOT NULL,
  4. `ip` varchar(40) NOT NULL,
  5. `browser` varchar(150) NOT NULL,
  6. `session_time` int(10) UNSIGNED NOT NULL,
  7. PRIMARY KEY (`sid`)
  8. ) ENGINE=MyISAM DEFAULT CHARSET=utf8;


oraz users :

  1. CREATE TABLE IF NOT EXISTS `users` (
  2. `userid` int(10) NOT NULL AUTO_INCREMENT,
  3. `login` varchar(32) NOT NULL,
  4. `passwd` varchar(50) NOT NULL,
  5. `email` varchar(160) NOT NULL,
  6. `status` tinyint(1) UNSIGNED NOT NULL DEFAULT '1',
  7. UNIQUE KEY `userid` (`userid`)
  8. ) ENGINE=MyISAM DEFAULT CHARSET=utf8 AUTO_INCREMENT=100 ;


chciałbym wykonać połączenie miedzy session.user a users.userid , w jaki sposób mogę tego dokonać za pomocą ORM w kohana 3 ?

Ten post edytował phpowiec84 3.03.2011, 09:24:53
Go to the top of the page
+Quote Post
 
Start new topic
Odpowiedzi (1 - 1)
nmts
post 3.03.2011, 19:28:44
Post #2





Grupa: Zarejestrowani
Postów: 283
Pomógł: 34
Dołączył: 21.03.2008

Ostrzeżenie: (0%)
-----


Przede wszystkim jeśli to możliwe stosuj zalecane nazewnictwo, czyli:
- klucz główny: id
- klucz obcy: user_id
- każda tabela musi mieć klucz główny.
- nazwa tabeli - liczba mnoga,
- nazwa modelu - liczba pojedyńcza,

Jeśli się do tego nie stosujesz, co właśnie widzę, robisz sobie znacznie więcej pracy.

Masz, nie wiem czy jest poprawnie:
  1. // user.php
  2. protected $_has_one = array("session" => array("foreign_key" => "userid")); // połowa nie potrzebna gdy stosujesz nazewnictwo
  3. protected $_primary_key = "userid"; // nie potrzebne gdy stosujesz nazewnictwo
  4.  
  5. // session.php
  6. protected $_belongs_to = array("user" => array("foreign_key" => "user")); // połowa nie potrzebna gdy stosujesz nazewnictwo
  7. protected $_table_name = 'session'; // nie potrzebne gdy stosujesz nazewnictwo
  8. protected $_primary_key = "sid"; // nie potrzebne gdy stosujesz nazewnictwo


Ten post edytował nmts 3.03.2011, 19:30:23


--------------------
Free Web Tools - narzędzia dla programistów, webdeveloperów i specjalistów seo...
Go to the top of the page
+Quote Post

Reply to this topicStart new topic
1 Użytkowników czyta ten temat (1 Gości i 0 Anonimowych użytkowników)
0 Zarejestrowanych:

 



RSS Wersja Lo-Fi Aktualny czas: 20.06.2025 - 09:24