[seasar-dotnet:1859] Re: [DBFlute.NET]業務的one-to-oneな条件に他テーブルのカラム値指定
fp
[E-MAIL ADDRESS DELETED]
2010年 10月 11日 (月) 16:54:36 JST
fpです。
「OverRelation」を使わずに以下のようにできることは
認識しています。
; FK_MEMBER_MEMBER_LOGIN_AS_VALID = map:{
; localTableName = MEMBER ; foreignTableName = MEMBER_LOGIN
; localColumnName = MEMBER_ID ; foreignColumnName = MEMBER_ID
; fixedCondition =
exists(select 'TRUE' from MEMBER_STATUS st
where $$foreignAlias$$.LOGIN_MEMBER_STATUS_CODE =
st.MEMBER_STATUS_CODE
and st.DISPLAY_ORDER = 2)
; fixedSuffix = AsValid
}
(2010/10/11 16:44), fp wrote:
> fpです。
>
> 久保さん、即座の御返事ありがとうございます。
>
> ん〜、dbflute_exampledb にうまい例が見つからないのですが
> 仮に、MEMBER -> MEMBER_LOGIN -> MEMBER_STATUS で
> MEMBER_STATUS.DISPLAY_ORDER = 2 の条件で
> MEMBER -> MEMBER_LOGIN に業務的one-to-oneなFKを設定できる
> とした場合、
>
> ; FK_MEMBER_MEMBER_LOGIN_AS_VALID = map:{
> ; localTableName = MEMBER ; foreignTableName = MEMBER_LOGIN
> ; localColumnName = MEMBER_ID ; foreignColumnName = MEMBER_ID
> ; fixedCondition =
> $$over(MEMBER_LOGIN.memberStatus)$$.DISPLAY_ORDER = 2
> ; fixedSuffix = AsValid
> }
> と書きたい、ということです。
> 定義上明示されている MEMBER_LOGIN をポイントテーブルと
> することに曖昧さがあるとは思わないのですが。
>
> いままさに定義しようとしているリレーションのための
> 条件の指定に、以下は適用できませんし。
>> MEMBER.memberStatusByFooCode というように、
>> 明示的にリレーションを書いてもらう仕様にしています。
>
> foreignTable についての認識に齟齬があるのでしょうか?
>
>
> (2010/10/11 15:56), kubo wrote:
>> 久保(jflute)です。
>>
>>> とはいえ、foreignTable をポイントとすることはできないでしょうか?
>>
>> 例えば、会員に会員ステータスへのFKカラムが二つあった場合、
>> ポイントを会員ステータスにするとになります。
>> なので、foreignTableに関しては、
>> MEMBER.memberStatusByFooCode というように、
>> 明示的にリレーションを書いてもらう仕様にしています。
>> 親の親の親の親の親のカラムとかになると、指定が長くて
>> 大変ですが、曖昧さの可能性も増えるので、
>> そこの優先度を練り直したって感じです。
>>
>>>> ポイントテーブルは ORDER_ITEM で、リレーションは order。
>>>> -> $$over(ORDER_ITEM.order)$$
>>>
>>> これは実際の構成ではなく、あくまで例ってことで (^^;
>>
>> おっと、そうでしたかぁ、失敬w
seasar-dotnet メーリングリストの案内