[seasar-dotnet:1861] Re: [DBFlute.NET]業務的one-to-oneな条件に他テーブルのカラム値指定

fp [E-MAIL ADDRESS DELETED]
2010年 10月 11日 (月) 18:25:41 JST


fpです。

> ; 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
> }
ここ、
     ; fixedCondition =
         $$over($$foreignAlias$$.memberStatus)$$.DISPLAY_ORDER = 2
> と書きたい、ということです。
としたほうが、意図が明確になるでしょうか?


(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
>>
>> 2010/10/11 fp<[E-MAIL ADDRESS DELETED]>:
>>> fpです。
>>>
>>> 久保さん、こんにちは。
>>>
>>> 練り直し、ありがとうございます。
>>> 「基点テーブル限定パターン」はイメージ通りになりました。
>>>
>>> 「曖昧さをより無くす方を優先する仕様」における機能制限
>>> も理解できます。
>>>
>>> とはいえ、foreignTable をポイントとすることはできないでしょうか?
>>>> ポイントとなるテーブルは、Local もしくは、Referrer のみで、
>>>> そこから対象となるテーブルまでのリレーションを全て記述する
>>>
>>>> 形式にしました。とは言っても、fpさんのパターンの場合は、
>>>> 指定方法に何も変わりはないです。
>>>> ポイントテーブルは ORDER_ITEM で、リレーションは order。
>>>>     ->     $$over(ORDER_ITEM.order)$$
>>>
>>> これは実際の構成ではなく、あくまで例ってことで (^^;
>>>
>>> 宜しくお願い致します。
>>>
>>>
>>> (2010/10/11 3:06), kubo wrote:
>>>> 久保(jflute)です。
>>>>
>>>> ご確認・ご指摘ありがとうございます。
>>>> なぜか頭の中で $$localAlias$$ と勘違いしてて、
>>>> Referrer自身のカラムの考慮が抜けてました。
>>>>
>>>> で、再度練り直したのですが、
>>>> 指定方法を簡易にすることを優先した仕様になっていましたが、
>>>> 曖昧さをより無くす方を優先する仕様に直しました。
>>>> ドキュメント更新されていますのでご覧下さい。
>>>>
>>>> http://dbflute.sandbox.seasar.org/ja/manual/function/genbafit/implfit/bizonetoone/index.html#over
>>>>
>>>> 具体的には、ポイントとなるテーブルを探すのではなく、
>>>> ポイントとなるテーブルは、Local もしくは、Referrer のみで、
>>>> そこから対象となるテーブルまでのリレーションを全て記述する
>>>> 形式にしました。とは言っても、fpさんのパターンの場合は、
>>>> 指定方法に何も変わりはないです。
>>>> ポイントテーブルは ORDER_ITEM で、リレーションは order。
>>>>     ->     $$over(ORDER_ITEM.order)$$
>>>>
>>>> SNAPSHOTが上書きされています。
>>>> お手数ですが、こちらで再度確認して頂けるとありがたいです。
>>>>
>>>> 2010/10/10 takashi.nishikawa<[E-MAIL ADDRESS DELETED]>:
>>>> _______________________________________________
>>>> seasar-dotnet mailing list
>>>> [E-MAIL ADDRESS DELETED]
>>>> https://ml.seasar.org/mailman/listinfo/seasar-dotnet
>>>
>>> _______________________________________________
>>> seasar-dotnet mailing list
>>> [E-MAIL ADDRESS DELETED]
>>> https://ml.seasar.org/mailman/listinfo/seasar-dotnet
>>>
>> _______________________________________________
>> seasar-dotnet mailing list
>> [E-MAIL ADDRESS DELETED]
>> https://ml.seasar.org/mailman/listinfo/seasar-dotnet



seasar-dotnet メーリングリストの案内