2011-09-07 1 views
2

나는 등 SKU, 이름, 같은 속성을 가진 제품의 테이블이 내가 인해 기능의 큰 다양한 제품의 각 범주에 대한 별도의 테이블이 필요 것 같다DataMapper 관계자는

카테고리에 따라 다릅니다.

내가 (더 나은 방법이없는 한) 내가 좋아하는 것

/가입 적절한 (카테고리에 따라) 다른 테이블에 내 제품 테이블을 연결하는 부츠, 도구 및 모자

위한 테이블/클래스가 말 ?

Products Table 

id | Name | SKU | Category(Table) | CategoryTableForeignKey 
---------------------------------------------------------------------- 
1 | boot1 | 123 | Boots   | 2 
2 | knife1 | 345 | Tools   | 42 

-

Boots Table 

id | product_id | Size | Width | Color | Sex 
---------------------------------------------------------------------- 
2 | 1   | 9.5 | Wide | Olive | Male 

-

Tools Table 

id | product_id | length | Fixed | Coating | Etc 
---------------------------------------------------------------------- 
42 | 2   | 4.5 | False | ...  | ... 

나는 DataMapper 클래스와이 작업을 수행하는 방법을 모르겠어요.

이상적으로, 나는 수 있도록하고 싶습니다 :

my_boot = Boots.get(1) 

my_boot.product.sku 

편집 : dkubb 내 코드의 결함을 지적했다.

답변

1

has()을 사용할 때 외래 키는 기타 모델에있는 것입니다. 외래 키를 현재 모델과 관련된 테이블에 두려면 belongs_to을 사용하십시오. DataMapper 협회 소개

+0

좋아, 좋은 점. 하지만 Boots 테이블을 제품 테이블의 일부 레코드에만 어떻게 추가 할 수 있습니까? 제품 표에 많은

_id 열이 있어야하는 것 같습니다. –

+0

나는 당신의 도움 덕분에 그것을 알아 냈다고 믿습니다. 감사! –