2010-04-22 4 views
1

나는 만들고있는 프로그램의 데이터베이스 끝을 처리하는 방법을 약간 이해하고있다. Kohana에서 ORM을 사용하고 있지만이 문제를 해결하는 방법에 대한 일반적인 이해가 ORM에 대한 답변으로 이어질 것으로 기대합니다.데이터베이스 디자인 외래 키를 사용하는 MySQL

사용자가 주식 연구 정보를 관리 할 수있는 프로그램을 작성 중입니다. 내 표는 기본적으로 다음과 같습니다.

CREATE TABLE tags(
id INT AUTO_INCREMENT NOT NULL PRIMARY KEY, 
tags VARCHAR(30), 
UNIQUE(tags) 
) 
ENGINE=INNODB DEFAULT CHARSET=utf8; 


CREATE TABLE stock_tags(
id INT AUTO_INCREMENT NOT NULL PRIMARY KEY, 
tag_id INT NOT NULL, 
stock_id INT NOT NULL, 
FOREIGN KEY (tag_id) REFERENCES tags(id), 
FOREIGN KEY(stock_id) REFERENCES stocks(id) ON DELETE CASCADE 
) 
ENGINE=INNODB DEFAULT CHARSET=utf8; 


CREATE TABLE notes(
id INT AUTO_INCREMENT NOT NULL, 
stock_id INT NOT NULL, 
notes TEXT NOT NULL, 
FOREIGN KEY (stock_id) REFERENCES stocks(id) ON DELETE CASCADE, 
PRIMARY KEY(id) 
) 
ENGINE=INNODB DEFAULT CHARSET=utf8; 


CREATE TABLE links(
id INT AUTO_INCREMENT NOT NULL, 
stock_id INT NOT NULL, 
links VARCHAR(2083) NOT NULL, 
FOREIGN KEY (stock_id) REFERENCES stocks(id) ON DELETE CASCADE, 
PRIMARY KEY(id) 
) 
ENGINE=INNODB DEFAULT CHARSET=utf8; 

링크, 메모 및 태그를 포함하여 단일 주식의 모든 속성을 얻는 방법은 무엇입니까? 주식 표에 링크, 메모 및 태그 열을 추가해야합니까? 그러면 어떻게 호출합니까? 나는 이것이 ORM을 사용하는 것과 다르다는 것을 알고 있으며 SQL에서 조인 테이블을 사용할 수 있다고 가정합니다.

어떤 도움을 주셔서 감사합니다. 문제 해결에 많은 도움이됩니다.

답변

0

당신은 내가 생각 무엇을, JOINS

뭔가

같은
SELECT * 
FROM stocks s INNER JOIN 
     stock_tags st ON s.id = st.stock_id INNER JOIN 
     tags t ON st.tag_id = t.id etc... 
+0

감사를 사용하여 함께 테이블을 연결해야합니다. 나는 그것이 내가 사용하고있는 ORM에 대해 더 많은 것을 이끌어 줄 것이지만 그것이 아니라는 것을 희망하는 일종의 것이었다. – dscher

관련 문제