■SI Object Browser 掲示板


ユーザの皆様、開発者、サポート担当者の交流のための掲示板です!

ユーザーの皆様同士で教え合ったりもできる交流の場にしたいと思っていますので、相互協力をよろしくお願いします。
なお、過去に同じようなQ&Aがあるケースも多いので、投稿前にキーワード検索してみてください。

discussion
※各投稿のカラーは対象となる製品に対応しています。【…OB …OBER …全般 …その他】
※ライセンスに関するお問合せにつきましては、お問い合わせページよりご連絡いただきますようお願いいたします。
※誹謗中傷や公序良俗に反する書き込みはご遠慮ください。運営側の判断によりメッセージを削除する場合があります。
※環境依存や技術的調査が必要な問題については掲示板上ではお答えしかねます。ご了承ください。
フォワードエンジニアリングのSQL出力における出力順序の設定 2025/07/28 17:29 OBER 1
【前提】
現在利用しているDB環境では、異なるプリフィックスを持つエンティティ群が2つある(e.g. a_〇〇 と b_〇〇 の2種類存在する)。このER図をSQL出力して利用している。
このSQLについて、あるときは a_〇〇 のみを利用したい場合、逆に b_〇〇 のみを利用したい場合がある。ただし、a_〇〇 のエンティティから b_〇〇 に対する外部キー参照、またその逆も設定しているため、SQL出力時にはどちらのエンティティも含める必要がある。
なので、目的を達成するために、一旦SQLすべてSQL出力し、手動で片方のエンティティ群の設定を消すという手順としたい。この時、アルファベット順で並んでいれば、まとめて範囲選択で削除できそうなため楽である。しかし、SQLを見る限り、各エンティティにおけるCREATE TABLE文の順序が、エンティティ名のアルファベット順になっておらず、検索しながら削除する必要がありそうに見える。
(過去にお試しで使っていた、リバースエンジニアリングしただけのER図ではアルファベット順で出力された。しかし、サブモデル分割や統合など色々な編集を経たER図では順序のルールがわからない)

【質問】
・SQL出力時のスクリプトにおいて、エンティティのCREATE TABLE文の順序はどのような設定になっているか
・SQLのCREATE TABLE文の順序の設定は可能か、または(意図的かにかかわらず)順序に影響を与える設定はあるか
・SQL出力時に、当該エンティティを含まずとも、外部キー参照の設定は含むことはできるか

【環境】
・DB: PostgreSQL 14
・OBER: SI Object Browser ER 24(64bit)
OBサポートです。

ご質問の件につきましてそれぞれ以下に回答させていただきます。

>・SQL出力時のスクリプトにおいて、エンティティのCREATE TABLE文の順序はどのような設定になっているか

 既定ではエンティティ名(論理名)の昇順となります。
 (フォワードエンジニアリング画面のエンティティ一覧画面の表示順序でCREATE TABLE文が生成される形となっております。)

>・SQLのCREATE TABLE文の順序の設定は可能か、または(意図的かにかかわらず)順序に影響を与える設定はあるか

 上記フォワードエンジニアリング画面にて、
 「テーブル名」列をクリックするの上テーブル名(物理名)の順に並び替えの上、
 SQL出力することでテーブル名順に出力が可能となっております。

>・SQL出力時に、当該エンティティを含まずとも、外部キー参照の設定は含むことはできるか

 大変申し訳ありませんが 外部キーのSQL出力については
 当該エンティティ(親エンティティ、子エンティティ両方)を対象に含めた場合のみ出力される動作となっております。

上記動作につきましてご確認いただけますと幸いです。
何卒、よろしくお願い申し上げます。