Oracleでのオブゞェクトの呜名。 暪からの眺め

「䞻なものに぀いおの叀い歌」



「デヌタベヌスオブゞェクトの呜名基準」ず「コヌド蚭蚈ルヌル」は新しいトピックではありたせん。 いずれにせよ、すべおの開発チヌムは、このような暙準ずルヌルを開発たたは借甚する問題に盎面したす。 必芁に応じお、このトピックに関する蚘事やプレれンテヌション、およびさたざたな契玄の䟋やテンプレヌトをネットワヌクで芋぀けるこずができたす。 それらの倚くは確かに有甚であり、いく぀かは完党ではありたせんが、1぀の小さな泚意事項ではありたせん。開発者ず開発者によっお曞かれおいたす。



残念ながら、私の䞻芳的な珟実では、開発者は単なる䞀皮の抜象化です。 携垯電話の反察偎にあるこのようなファントムは、数千キロメヌトルず3぀のタむムゟヌンから私を隔おおいたす。 私は圌らの集合的な脳に盎接アクセスできたせん。 悪甚されたシステムのオブゞェクトの圢で、この脳によっお生成された画像のみが利甚可胜です。



原則ずしお、「アプリケヌション」アプリケヌション管理者/技術者ず開発者の登録ず呜名の芁望は、90パヌセント䞀臎しおいたす。 しかし、「読者」ず「䜜家」の認識にはただいく぀かの違いがありたす。それに぀いおお話ししたいず思いたす。



この蚘事の目的゜フトりェア開発者のチヌムがOracle DBMSに基づいた情報システムの蚭蚈で䜿甚するデヌタベヌスオブゞェクトの呜名芏則呜名芏則-NCはコヌド芏則に䌌おいたす を開発し、次の芁件を満たしたす。



  1. NCは可胜な限り䞀杯にする必芁がありたす。 すべおのタむプのデヌタベヌスオブゞェクトの呜名芏則を含む
  2. NCはできるだけ短くする必芁がありたす。 理想的なオプション1 A4シヌト。


Oracle Databaseを遞ぶ理由 圌女は私に芪しみ、芪愛なる。 そしお、普遍性ぞの䞻匵で広倧さを受け入れる詊みは、私の歯ず胜力を超えおいたす。 このトピックでは、このトピックに関するBill Coulam、Steven Feuerstein、およびTom Kyteの蚘事の資料ず、さたざたな情報システムの蚭蚈、開発、および運甚におけるささやかな経隓を芁玄しようずしたした。



ネヌミングぞのさたざたなアプロヌチに぀いお読むのが面倒で、このアプロヌチやそのアプロヌチを擁護する議論を歩き回る人は、単に蚘事を最埌たでスクロヌルするこずができたす。 トピックに関する他の䟿利なリンクを芋぀けるこずができたす。



あなたはただここにいたすか しばらく埅っおもスクロヌルを開始できたせんでしたか おめでずうございたす。特別なボヌナスがありたす。この堎所を離れるこずなく、 「Oracle NC」ポスタヌをここからダりンロヌドできたす。 事実、私はすでに自分の蚘事を読んでおりはい、事前に譊告しおいたす。それは面倒で、䞀芋するずあいたいなむンセットテンプレヌトがたくさんありたす。 1枚のシヌトにすべおのルヌルず䟋を手元に眮いお、それを理解するのがはるかに簡単になりたす。



誰もがタンク内の䞻なものを知っおいたすが、誰もがholdするこずはできたせん...



ITプロゞェクトのためにNCを開発するずいう考えは衚面䞊にあるように思われたす。 蚭蚈ず開発におけるNCの芁件ぞの準拠も、倩の恵みではありたせん。 ただし、電気通信䌚瀟の課金システム垂堎におけるロシアの倧手開発者による゜リュヌションの経隓から、オブゞェクトの呜名ず゜ヌスコヌドの蚭蚈の文化は実際には非垞に䜎いこずが瀺唆されおいたす。 原則ずしお、私が矩務的に研究したすべおの決定は、4぀のグルヌプに分けるこずができたす。



  1. NCの兆候が完党にない12補品䞭2補品。 これは悪倢です。 そのようなシステムを操䜜するこずは、絵を䞋にしおパズルを組み立おるようなものです。 倚倧な劎力を費やしお、盞互接続ずロゞックの個々のスレッドのみをボヌルから匕き出すこずができたす。 そしお、毎回、新しい問題で、も぀れを再び解く必芁がありたす。
  2. 1぀のプロゞェクトで異なるNCを䜿甚する12のうち3぀の補品。 開発者がNCに぀いお耳にし、独自のスタむルを開発し、それに埓うこずを孊んだこずはすぐに明らかです。 問題は、1぀のプロゞェクトに察しお開発者ずスタむルが倚すぎるこずです。 そのような゜リュヌションの動䜜は、単䞀のモゞュヌルを孊習した経隓が別のモゞュヌルでは圹に立たないずいう事実によっお劚げられたす。 郚品を知るず、党䜓の信頌できるアむデアを埗るこずができたせん。
  3. 初期バヌゞョンでははっきりず芋えおいたNCは、束葉杖の山の䞋に埋められ、匷力な圧力パッチで掗浄されたした12個䞭6個の補品。 最も䞀般的なオプション。 圌らが自制できなかった同じ戊車。
  4. システムのラむフサむクル党䜓のすべおの芁件ず制限に準拠しおNCを明確に修正したした。 12個䞭1個の補品。 ここで圌女は応甚男の倢です...


私はp.pの理由の分析を掘り䞋げたくありたせん。 1-3、私は事実を述べおいるだけです。 私が望んでいるのは、パラグラフ4の「倢」ぞの䞀歩を螏み出すこずです。だから、始めたしょう。



䞀般的な掚奚事項



Oracle DBMS甚に開発する際に芚えおおくべきこずず埓うべきこずから始めたしょう。



  1. Oracleのオブゞェクト名は30文字に制限されおいるこずに泚意しおください。 培底的に。 自分からは願いだけを远加できたす。 「コヌドヒント」をサポヌトしおいないアプリケヌションを介しおシステムで䜜業する人が気に入らないようにするには、慎重になりたす。オブゞェクトの名前はできるだけ短くしおください。
  2. オブゞェクト名は数字で始めるこずはできたせん。 コメントはありたせん。
  3. オブゞェクトに名前を付けるずきに同じ蚀語を䜿甚したす。 できれば英語。 文字倉換を避けたす。 私を信じお、 ORDERSず呌ばれるテヌブルは、 ZAKAZず呌ばれるテヌブルよりもよく知芚されたす 。 その他。 非垞に頻繁に商甚システムでは、略語の音蚳を凊理する必芁がありたす。 圌女も避けおください。 ゜連は SSSRよりも明確であり、 米囜は 䜕らかの圢でSSHAよりも明確です。
  4. はい、ほずんど忘れおいたした。 ラテン名でのみ䜿甚しおください もちろん、これはばか向けの掚奚事項ですが、SQLPLUSのテヌブルからフェッチしようずしお、私は䞀床倢䞭になりそうになりたした。 そしお、すべお最埌にロシア語のレむアりトに蚘号「e」があったからです。 PL / SQL Developerでは、名前を完党に入力する必芁はありたせんでした-コヌドヒントが機胜したした。 おもしろいこずに、テヌブルはこの圢匏で1か月以䞊生き続けおおり、私よりも前に誰も文句を蚀いたせんでした。
  5. システムを蚭蚈するプロセスでサブゞェクト領域を調べた盎埌、識別されたすべおの゚ンティティを別のファむルテヌブル-甚語集に曞き換えたす。 むンタヌネットでのんびりするのが面倒ではありたせん-あなたの゚ンティティのほずんどには、長い間確立され䞀般的に受け入れられおいる英語の名前がありたす。 甚語集で修正しおください。 他の゚ンティティに぀いおは、適切な翻蚳を行いたす。 将来の略語に぀いおも同じこずを行いたす。 それから、最も重芁なこずは、同じ意味の芁玠には垞に同じ名前を䜿甚するこずです。
  6. Oracleの予玄語を名前ずしお䜿甚しないでくださいすべおの予玄語のリストは、システムビュヌV $ RESERVED_WORDSから遞択するこずで取埗できたす。 ずころで、Oracleの特定の衚珟からのいく぀かの単語は䜿甚できたせん。 しかし、盎接䜿甚が犁止されおいないものもありたすが、結局のずころ、䜿甚しない方が良いです。
  7. オブゞェクト名のトヌクンはアンダヌスコアで区切りたす。 Oracleでは倧文字ず小文字が区別されないため、 MySuperPuperTableNameのような「ラクダ」は、ディクショナリで完党に読み取れないMYSUPERPUPERTABLENAMEに倉わりたす。



    わずかな䜙談
    正盎なずころ、Oracleでは、オブゞェクトの倧文字ず小文字を区別する名前を指定できたす。 たずえば、次のように



    create table "MyTable" (a number);







    芁するに、そのような倒錯を避けおください。




オブゞェクトの呜名芏則



テヌブル


テヌブルの呜名に぀いおは、ビルコヌルハムの芋解をほが完党に共有したす。 圌によっお開発された暙準は、開発者にずっおも「゚クスプロむト」にずっおも、網矅的で実甚䞊理想的です。 ここでは完党な翻蚳は行いたせん。基本的な点にのみ焊点を圓おたす。



そのため、Colehamは、テヌブルに次の名前を付ける䞀般的な圢匏を提䟛したす䞭括匧には必須コンポヌネントが含たれ、「盎線」括匧にはオプションコンポヌネントが含たれたす。

 [_][_]{}[_]
      
      





モゞュヌルの䞋Colema- システムグルヌプの芳点からは、デヌタベヌス内のサブシステムの名前を意味したす。 通垞、2〜4文字の削枛が䜿甚されたす。 たずえば、「関皎」モゞュヌルのテヌブルには接頭蟞「TAR_」があり、支払モゞュヌルのテヌブルには接頭蟞「PAY_」がありたす。 「倖囜」のスキヌムで開発を行う堎合は、远加のプレフィックスを远加しお、オブゞェクトを分離するこずをお勧めしたす。 通垞、組織の短瞮名をプレフィックスに远加したす。 もちろん、これによりオブゞェクトの名前が長くなりたすが、プロゞェクトツリヌで「自分の」オブゞェクトを明確に遞択できたす。 このアプロヌチに戞惑うなら、モゞュヌルコヌドの前に1぀の文字を远加するだけで十分です「ロヌカル開発者」は通垞XたたはXXを奜みたす-OEBSの継承。



グルヌプは同じ目的で䜿甚されたす。論理的に接続されおいる゚ンティティをグルヌプ化するこずができたす通垞、グルヌプ内の最倧20個のオブゞェクト。 たた、2〜4文字が削枛されたす。 システムグルヌプず論理グルヌプを䜿甚するず、オブゞェクトツリヌ内の゚ンティティをグルヌプ化できるだけでなく、システム党䜓の開発ず保守も倧幅に簡玠化できたす。 実際、特定のオブゞェクトの名前を芚える必芁はなくなり、モゞュヌルず論理グルヌプの略語を芚えおおくだけで、コヌドヒントは必芁なオブゞェクトを簡単に芋぀けるのに圹立ちたす。



名前を䜿甚するず、すべおが明確になりたす。 これは、゚ンティティの実際の名前です。 ビル・コヌルハムは単数圢の䜿甚を掚奚しおいたすが、個人的に私は耇数圢にもっず芪しみ、より粟通しおいたすStephen Furstayn、こんにちは。 スティヌブンずビルの䞡方は、゚ンティティ名の略語を避けるこずを勧めおいたす。 䟋倖は、8文字より長い単語です。



テヌブルの目的を䞀蚀で衚すこずは垞に可胜ずは限りたせん。 この堎合、習慣から倖れた䞀郚の囜内の開発者は、単語の順序が䞀般的なものから特定のものぞ、本質から財産ぞず倉わるずき、私が自分自身を「販売受領芏則」ず呌ぶ芏則を䜿甚したす。 ぀たり 「トむレットペヌパヌ」、「ピクルスのキュりリ」、「トマトペヌスト」の代わりに「トむレットペヌパヌ」。 残念ながら、英語の名前ではほずんどの堎合ひどいように芋えたす。 YELLOW_SUBMARINEずSUBMARINE_YELLOWを比范したす。 この堎合、単䞀のテンプレヌトに䟝存する理由はありたせんが、特定のコンテキストでより適切な順序を䜿甚するこずをお勧めしたす。



ロヌルは基本的に、システム内のテヌブルの目的宛先のタむプです。 Colehamは玄20の圹割を遞出したすが、私の奜みでは、それらのいく぀かは冗長です。 私が䜿甚するもののみを提䟛したす





別のクラスで、Colehamは倚察倚の関係が実装されるテヌブルを識別したす。 そのようなテヌブルに察しお、圌は次の呜名パタヌンを提䟛したす。

 [_]{/  1_/  2}
      
      





私が出䌚ったほずんどのプロゞェクトでは、開発者はそのような関連テヌブルに「意味のある」名前を䜿甚しおいたした。 私自身はテンプレヌトを䜿甚したす

 [_][_]{  1_}{  2}
      
      





この堎合のテヌブルコヌドは、リンクに参加するテヌブルの省略圢です2〜4文字。 たずえば、この暙準の教垫の講矩 TEACHERS に参加する孊生の接続 STUDENTS を栌玍するテヌブルは、 STUD_TCHRず呌ばれたす 。 はい、䞀芋反発的に芋えたすが、時間の経過ずずもに利䟿性を理解したす。䞀芋するず、テヌブルを「束」ずしお分類したすフルネヌムの代わりにコヌド/略語を䜿甚しおいるため。



テヌブルの列列


名前の長さの制限から始めたしょう-15文字以内より良い-少ないを保぀ようにしおください。 倖郚キヌを持぀制玄、むンデックス、および列の埌続の呜名のために、䞊郚の制玄に察するマヌゞンが必芁になりたす。

私のプロゞェクトでは、次のテンプレヌトを䜿甚したす。

 [ _]{ }[_]
      
      





テヌブルコヌドは、列が属するテヌブルの略語2〜4文字です。 このプレフィックスをオプションずしお指定したしたが、ほずんどすべおの列に䜿甚したす。 䟋倖は、特定のオブゞェクト UPDATE_DATE 、 UPDATE_BYなどのプロパティではなく、テヌブルの抜象レコヌドの特定のプロパティの倀を栌玍する「サヌビス」列です。



列の名前はそれ自䜓を衚しおいたす。 別途、ルヌルに぀いおのみ倖郚キヌの名前の圢成に぀いお蚀いたいず思いたす-それは子テヌブルのコヌドず芪䞻キヌのフルネヌムで構成されたす。



ロヌル -オプションのサフィックス。 これは列の倀型であり、この列のデヌタ型コヌドではないこずに泚意しおください ほずんどの堎合、次のロヌル倀タむプを䜿甚したす。







倚くの堎合、テンプレヌト具䜓的には、テヌブルコヌド圢匏のプレフィックスは冗長であるず芋なされたす。 しかし、さたざたなアプロヌチを比范できるため、私はそれを自分で遞択したした。 理由を説明したす。

  1. より読みやすいク゚リ。 接頭蟞のある列によっお、どのテヌブルに぀いお話しおいるかがすぐにわかりたす。 倚くの堎合、開発者が列を修食するのが面倒だずいうこずは秘密ではないため、接頭蟞を持぀列の名前は「倖郚」ク゚リでの䜜業を容易にしたす。
  2. 䟋倖゚ラヌの蚺断が容易になりたす。 もちろん、それらのほずんどは特定の列ではなく制玄を参照しおいたすが、ほずんどの堎合、制玄の名前は列名に基づいおいたす。
  3. システム蟞曞の予玄語ず䞀臎する列名の確率が䜎䞋したす。 これは特に、NAME、ID、COMMENT、DATEなどの䞀般的な名前に圓おはたりたす。 その結果、開発者は他の冗長な文字の組み合わせを名前に远加する必芁がなくなりたす。
  4. 匊瀟では、䜿甚されたクラむアント゜フトりェアのほずんどがOracle Formsに基づいお開発されおおり、どのフィヌルドでもF1ボタンを䜿甚しお゜ヌス列の名前を確認できるこずがわかりたした。 フォヌム䞊のオブゞェクトをデヌタベヌス内のオブゞェクトに即座に関連付ける機胜は、システムの初期の知り合いやその埌の操䜜に非垞に圹立ちたす。




制限事項


Colehamは、この制限が適甚されるテヌブルのフルネヌムの圢匏のプレフィックスを䜿甚しお、名前付け制玄を掚奚しおいたす。 特に名前の長さごずに30文字ずいう䞀般的な制限を考えるず、この呜名は䞍合理な無駄だず思いたす。 したがっお、フルネヌムの代わりにテヌブルのコヌドを䜿甚するこずが可胜です。 したがっお、䞻キヌに぀いおは次のようになりたす。

 [_][_]{ }{_PK}
      
      





以降、 モゞュヌルおよびグルヌプ制限プレフィックスは、関連付けられおいるテヌブルから継承されたす。 これにより、倧芏暡システムでの名前の圢成における䞀意性の違反が回避され、モゞュヌルの制限をグルヌプ化するのにも䟿利です。



1぀の列に構築された䞀意のキヌの堎合

 [_][_]{ }{_UK}
      
      





コラムテンプレヌトにはテヌブルコヌドが含たれおいるこずを思い出しおください。 したがっお、 UTL_PARAMS_REFテヌブルのPRM_CODE列では、䞀意のキヌはUTL_PRM_CODE_UKず呌ばれたす



耇数の列に構築された䞀意のキヌの堎合

 [_][_]{ _}{CMP_UK}[_#]
      
      





COMP-この堎合、 COMPOSITE 耇合キヌ蚘号を意味したす。耇数の䞀意の耇合キヌがある堎合は シリアル番号が䜿甚されたす正盎なずころ、この堎合の正しい䟋は思い぀きたせん。



1぀の列に基づく倖郚キヌ

 [_][_]{ }{_FK}
      
      





倖郚キヌ列のフルネヌムには子テヌブルず芪テヌブルの コヌドが含たれおいるため、 UTL_PARAM_VALUES テヌブルのPVL_PRM_ID列では、倖郚キヌはUTL_PVL_PRM_ID_FKず呌ばれたす  UTL_PARAMS_REFテヌブルのPRM_ID列を参照 



耇数の列で構築された倖郚キヌ

 [_][_]{ _}{COMP_FK}[_#]
      
      





列レベルの制玄

 [_][_]{ }{_CK}
      
      





テヌブルレベルの制限

 [_][_]{ _}{COMP_CK}[_#]
      
      





むンタヌネットで、 NOT NULL型の制玄に名前を付ける必芁性に぀いおの激しい議論にしばしば䌚いたした。 はい、私は怠慢に同意したすが、この抂念を厳密に遵守する堎合は、次のようにしたす。

 [_][_]{ }{_NN}
      
      





指数


私は通垞、むンデックスを3぀のカテゎリに分けたす。

  1. キヌベヌスのむンデックスプラむマリおよびナニヌク
  2. 単䞀列むンデックス
  3. 耇合耇数の列に基づく


キヌベヌスのむンデックスプラむマリおよびナニヌクは、察応する制限ず同じ方法で名前が付けられたす。

 [_][_]{ }{_PK} [_][_]{ }{_UK} [_][_]{ _}{CMP_UK}[_#]
      
      





単䞀の列に基づくむンデックス

 [_][_]{ }[_]{_IDX}
      
      





このテンプレヌトのロヌルは、むンデックスタむプ修食子を参照したす。 Colemは、次の修食子を䜿甚するこずをお勧めしたす。



耇数の列に基づくむンデックス。 Colehamは次の圢匏を掚奚しおいたす。

 [_][_]{ }{_COMP}[_]{_IDX}[#]
      
      





Colemパタヌンを特別なケヌスず芋なし、むンデックス名のすべおの列これが長さの制限に違反しない堎合を垞にリストしようずしたす。

 [_][_]{ _}{ }[_]{_IDX}
      
      





制限のためにCOMP修食子に制限されおいるのに、むンデックスには䜿甚しないようにしおいるのはなぜですか ただし、耇合制玄はルヌルではなく䟋倖です。 通垞、それらはそれほど倚くありたせん。たた、違反に関する゚ラヌのあるメッセヌゞはあたり芋られたせん。 耇合むンデックスは別の問題です。 たず、それらの倚くがありたす。 第二に、倚くの堎合、テヌブルごずに耇数ありたす。 そしお第䞉に、アプリケヌションの開発者ず管理者は、ク゚リプランを確認しながら絶えず圌らず協力したす。



トリガヌ


この蚘事では、DMLトリガヌのみを怜蚎したす。これは、他のすべおのタむプの方が開発者ではなくDBAの責任であるず考えおいるためです。 次のルヌルでトリガヌを呌び出したす。

 [_][_]{ }[_/]_{B|A|C (I|U|D)[S]}[_#]
      
      





略語B 、 A 、 C  BEFORE 、 AFTER 、 COMPOUND は、トリガヌの「モヌメント」を決定したす。 I 、 U 、 D  INSERT 、 UPDATE 、 DELETE -応答むベント。 S  STATEMENT -操䜜の「レベル」を決定したす。



私のプロゞェクトでは、2぀の「兞型的な」トリガヌロヌルを区別しおいたす。





芖聎回数


ビュヌの呜名芏則は、テヌブルの呜名芏則ず倉わりたせん。 唯䞀の願いは、このオブゞェクトが単なる衚珟であるずいうサむンを名前に含めるこずです。 ここでのアプロヌチは異なる堎合がありたす。 名前の接頭蟞の圢でこの症状に出䌚いたした。 たずえば、 V_たたはV $であり 、Oracleシステムビュヌのようなものです。 個人的には、サフィックスを䜿甚したす



しかし、私はあなたに助蚀したせん。 区切り蚘号ずしおのドル蚘号は習慣の問題です。 これは私の目の「アンカヌ」であり、テヌブルずビュヌを区別できたす。 これらのアプロヌチを客芳的に芋るこずはできたせん。したがっお、Ferstayn接尟蟞_Vおよび_MW のように、「アンダヌスコア」蚘号に反察するものは䜕もありたせん。



シヌケンス


シヌケンスをサフィックス_SEQで他のオブゞェクトず区別し、次のルヌルで呜名するこずをお勧めしたす。

 [_][_]{  |    | }{_SEQ}
      
      





テヌブルコヌド  テヌブルの省略名は2〜4文字は、テヌブルのサロゲヌト䞻キヌを生成するシヌケンスに䜿甚されたす。



列の名前 ここでは、テヌブルのコヌドが含たれおいたすを䜿甚しお、䞻キヌに含たれおいない列の倀を生成したす。 実際、これは私が実際に䜿甚しない退化したケヌスです。 シヌケンスが䞻キヌ倀の生成に䜿甚されおいない堎合-名前では、このシヌケンスの目的を反映しようずしたす。



たずえば、 INTERNET_LOGINSテヌブルILG_SEQの䞻キヌを生成するためのシヌケンスを呌び出し、特定のむンタヌネットアカりントのログむンを生成するためのシヌケンスはLOGIN_SEQです。



同矩語


シノニムは、参照するオブゞェクトず同じ方法で参照されたす。



皮類


タむプごずに、明確に圢成された意芋はありたせん。 これらのオブゞェクトに名前を付けるためのさたざたなアプロヌチに出䌚いたしたが、どのアプロヌチが自分に近いかを完党に決定するこずはできたせんでした。 ここで私に吊定的な反応を匕き起こさないものを説明したす

  [_][_]{}[_ ]T
      
      





このテンプレヌトは、Coleamが掚奚しおいたす。 型コレクションの蚘号は、蚘号Tで識別されたす。 したがっお、単䞀オブゞェクトの型には垞に接尟蟞_Tが付き、コレクション型は_TTです。 たずえば、 UTL_PARAMETER_T 、 UTL_PARAMETER_TT 。

 [_][_]{}[S]_TYP
      
      





ここで、 Sは耇数を衚し、サフィックスTYPはデヌタベヌスオブゞェクトを型ずしお修食したす。 たずえば、 UTL_PARAMETER_TYP 、 UTL_PARAMETERS_TYP 。 コレクションのサむンが匷調衚瀺されおおらず、目がそれに固執しおいないため、私はこのアプロヌチが最も奜きです。

 [_][_]{}_{OBJ | TAB}
      
      





この衚蚘では、デヌタベヌスオブゞェクトの名前がOBJたたはTABで終わる堎合、オブゞェクトはタむプです TABはコレクション、 OBJは単䞀のオブゞェクトです。 たずえば、 UTL_PARAMETER_OBJ 、 UTL_PARAMETERS_TAB



゜フトりェアモゞュヌル


プログラムモゞュヌルのコヌドを蚭蚈するための芏則別の蚘事を遞びたいず思いたす。 Coleamが提案するテンプレヌトを次に瀺したす。 プロシヌゞャパッケヌゞの堎合、Billは次のルヌルを䜿甚したす。

 [_][_]{/}[_. ][_PKG]
      
      





NC Coleamに関しおは、 機胜修食子 私にずっおはサブグルヌプずいう甚語がより理解しやすいを䜿甚しお、リファクタリングのためにいく぀かの機胜を個別のパッケヌゞに分離しおいたす。 これが論理グルヌプの远加レベルであるずだけ蚀っおみたしょう。 たずえば、 UTILパッケヌゞには、数字ず文字列を操䜜するための関数が含たれおいたした。 UTIL_NUMBERずUTIL_STRINGの 2぀に分割されたした 。



PL / SQLで開発する堎合、スペシャリストは他のパッケヌゞの機胜ず手順を垞に操䜜したす。 コヌドが倧きく芋えないように、パッケヌゞの名前が䞍必芁に長くなるのを避けるようにしたす。 したがっお、サフィックス_PKGは、パッケヌゞの名前がスキヌムの別のオブゞェクトの名前ず䞀臎する可胜性がある堎合にのみ䜿甚したす。



個々の手順ず機胜に぀いお、Colehamは次のテンプレヌトを掚奚しおいたす。

 [_]{/}
      
      





アクションずは動詞 GET 、 SET 、 ASSIGN 、 RUN を意味し、目暙ずは実行する必芁があるものです。 私の偎では、開発䞭はパッケヌゞ倖のプロシヌゞャず関数をたったく䜿甚しないようにしたす。 さらに、同じ関数は、それが機胜するオブゞェクトによっおグルヌプ化されるこずが倚いため、通垞はテンプレヌトを䜿甚したす

 {}[_]
      
      





したがっお、コヌドヒントはプロシヌゞャをオブゞェクトにグルヌプ化したす PARAM_GET 、 PARAM_SET 、 PARAM_CHECKなど。



おわりに



玄束どおり、私は自分の「Oracle NC」ポスタヌぞのリンクを匕甚したす 。

決しお誰にも私の芏則ず基準を課すこずはせず、それらの䜿甚を䞻匵しない。 NCの存圚ずチヌム内での芁件の遵守は、良いスタむルであるず考えおいたす。これは、開発者の「瀌儀正しさ」であり、だれがその埌システムを䜿甚するかを瀺したす。

あなたのプロゞェクトで頑匵っおください。



PS泚意深い読者は確かに私の小さな欺certainlyに気づいた。 この蚘事の最初の目暙は決しお達成されたせんでした。すべおのタむプのOracle DBMSオブゞェクトがこの蚘事で説明され、NCポスタヌに存圚するわけではありたせん。 さお、この欠陥を修正する機䌚がありたす。 NCポスタヌの「゜ヌス」をダりンロヌドしお、目的ず目的に合わせお線集できたす。



この蚘事では次の゜ヌスが䜿甚されおいたす。

  1. Steven Feuersteinのブログずその呜名芏則ずコヌド暙準
  2. Oracle Naming Standard Bill Coulam
  3. Tom Kyte Blog Ask Tom ...

    フォヌラム資料SQL.RU




All Articles