タグ付けされた質問 「naming-convention」

19
テーブル名に「tbl」プレフィックスを追加することは本当に問題ですか?
私はいくつかのブレント・オザールのビデオを見ています(例えば、このような)、彼はテーブルの前に‘tbl’またはを付けないことを提案してい‘TBL’ます。 インターネット上で、ドキュメントに何も追加されず、「読むのに時間がかかる」というブログを見つけました。 質問と考慮事項 これは本当に問題ですか?なぜなら、最初のdbaジョブ以来、テーブルの前に 'tbl'を付けているからです(シニアDBAから組織のためにそれを行うように言われました)。 これは私が取り除く必要があるものですか?いくつかのテストを行い、非常に大きなテーブルをコピーして「tbl」プレフィックスを付け、もう一方のテーブルはそのままにして、パフォーマンスの問題に気付きませんでした。

10
ID列に「Id」という名前を使用しないことを推奨するのはなぜですか?
IdテーブルのID列に名前を使用しないように教えられましたが、最近は、データが実際に何であるかについて簡単で、短く、非常に説明的であるため、とにかくそれを使用しています。 Idテーブル名の接頭辞を付けることを提案する人がいますが、これは特にSQLクエリを作成する人(またはEntity FrameworkのようなORMを使用している場合はプログラマー)、特にCustomerProductIdまたはAgencyGroupAssignementId Ident使用を回避するために、実際にすべてのID列に名前を付けて何かを作成するために雇ったサードパーティベンダーId。最初Idはキーワードだったからだと思っていましたが、調べてみると、IdSQL Server 2005のキーワードではないことがわかりました。 それでは、なぜIdID列に名前を使用しないことを推奨するのでしょうか? 編集:明確にするために、どの命名規則を使用するか、またはある命名規則を他の命名規則よりも使用するための引数を求めていません。IdID列名に使用しないことが推奨される理由を知りたいだけです。 私はDBAではなく、単一のプログラマーです。データベースは、データを保存する場所にすぎません。私は通常小さなアプリを作成し、通常はデータアクセスにORMを使用するため、IDフィールドの共通フィールド名を使用する方がはるかに簡単です。これを行うことで何が欠けているのか、そしてこれを行わない本当に良い理由があるかどうかを知りたいです。



8
非常に短縮されたテーブル名を使用する理由はありますか?
ベンダーのアプリケーションのデータベースセットアップを使用していますが、データベーステーブル名は恐ろしく読みにくく、どこに保存されているかに関するドキュメントはありません。プロプライエタリアプリでテーブル構造を難読化する理由はわかりますが、このアプリケーション(エンタープライズリソースプランニング)のセールスポイントの1つはカスタマイズ性でした。 テーブル名は、aptrx(買掛金勘定取引)およびapmaster_all(奇妙なことに、これはベンダーテーブルです)のようなものです。それは非常に複雑なデータベースなので、慣習に何らかのロジックがあるのか​​、それとも単に意図的にまたは他の方法で難読化されているのか疑問に思っていました。 私の知る限り、テーブル名の長さはパフォーマンスに顕著な影響を与えません、正しいですか?データベースは非常に複雑(数百のテーブル)なので、ソートは理にかなっていますが、AccountsPayableTransactionsがaptrxよりも好ましくない理由は想像できません。

5
テーブルのエイリアシングは悪い習慣ですか?
マスターオブインフォメーションサービスの学生向けのDBMSコースでこれを学習したことを覚えています。入力を節約するために、次のように入力できます。 SELECT t1.id, t2.stuff FROM someTable t1 INNER JOIN otherTable t2 ON t1.id=t2.id ; しかし...ストアドプロシージャなどでこれが受け入れられるのはなぜですか?非常に短い時間を節約しながら、ステートメントの可読性を損なうだけであるようです。これを行う機能的または論理的な理由はありますか?曖昧さを削除するのではなく、追加するようです。この形式を使用するために私が見ることができる唯一の受け入れられる理由はFROM someTable idsTable、テーブル名が十分に説明的でない場合に、意味的に意味のあるエイリアスを追加していた場合です。 テーブルのエイリアシングは悪い習慣ですか、これは単に有用なシステムの誤用ですか?

5
テーブルとビューに名前を付けるとき、どの標準に従うべきですか?
テーブルとビューに名前を付けるとき、どの標準に従う必要がありますか?たとえば、テーブル名の先頭にtbl_のようなものを置くのは良い考えですか?ct_、lut_、codes_のような方法でコード/ルックアップテーブルを指定する必要がありますか?他にすべきこと/禁止事項はありますか? 私はMS SQL Serverを使用しており、多くのテーブルを持つ多くのデータベースを持っているので、いくつかの合理的なサポートを備えた標準として使用できるものがあると便利です。

3
列名の命名規則とベストプラクティス
列の命名に関しては、ベストプラクティスに関する専門家の意見をいくつかお願いします。 背景は、ウィキペディアによると、次の構文、 SELECT ... FROM Employees JOIN Timesheets USING (EmployeeID); より効率的です SELECT ... FROM Employees JOIN Timesheets ON (Employees.EmployeeID = Timesheets.EmployeeID); ただし、JOIN ... USING構文はグローバルに一意の名前を持つすべての主キー列でのみ機能します。したがって、これは正しいことと考えられているのだろうか。 個人的に、私はいつもPK column id、および外部キーcolumnを持つテーブルを作成するために使用していましたothertable_id。しかし、その方法ではUSINGまたはを使用することはできませんNATURAL JOIN。 デザインスタイルへのリンクまたはテーブルデザインのベストプラクティスガイドも歓迎します。

1
関数パラメーターとUSING句を使用したJOINの結果との名前の競合
現在のPostgres 9.4でのこのセットアップを考えると(この関連する質問から): CREATE TABLE foo (ts, foo) AS VALUES (1, 'A') -- int, text , (7, 'B'); CREATE TABLE bar (ts, bar) AS VALUES (3, 'C') , (5, 'D') , (9, 'E'); 前の質問からのSQL Fiddleもあります。 私が書いたSELECTとをFULL JOIN参照し、質問の目的を達成するために。簡略化: SELECT ts, f.foo, b.bar FROM foo f FULL JOIN bar b USING (ts); 仕様に従って、列をアドレス指定する正しい方法tsは、テーブル修飾なしです。入力値(f.tsまたはb.ts)のいずれかをNULLにすることができます。このUSING句は、奇妙なケースを少し作成します。実際には入力に存在しない「入力」列を導入します。これまでのところとてもエレガント。 …

2
公式のPostgreSQL大文字表記規則[終了]
閉じた。この質問は意見に基づいています。現在、回答を受け付けていません。 この質問を改善したいですか?この投稿を編集して事実と引用で答えられるように質問を更新してください。 5年前に閉鎖されました。 DB、テーブル、およびフィールド名の大文字使用に関する公式のPostreSQL規約はありますか? 公式サイトの例は小文字と_単語の分離を示唆しており、このポリシーが公式かどうか疑問に思います。 CREATE TABLE films ( code char(5) CONSTRAINT firstkey PRIMARY KEY, title varchar(40) NOT NULL, did integer NOT NULL, date_prod date, kind varchar(10), len interval hour to minute );

1
SQL Server 2016のテーブル命名規則とポリシー管理に関する問題
SQL Server 2012では、テーブル名にスペースを使用できないようにポリシーを設定していました。しかし、SQL Server 2016で同じポリシーを使用すると、エラーが発生します。 条件のコードは次のとおりです。 DECLARE @condition_id INT EXEC msdb.dbo.sp_syspolicy_add_condition @name=N'No Spaces', @description=N'No spaces in table names.', @facet=N'IMultipartNameFacet', @expression=N'<Operator> <TypeClass>Bool</TypeClass> <OpType>NOT_LIKE</OpType> <Count>2</Count> <Attribute> <TypeClass>String</TypeClass> <Name>Name</Name> </Attribute> <Constant> <TypeClass>String</TypeClass> <ObjType>System.String</ObjType> <Value>% %</Value> </Constant> </Operator>', @is_name_condition=4, @obj_name=N'% %', @condition_id=@condition_id OUTPUT SELECT @condition_id ポリシーのコードは次のとおりです。 DECLARE @object_set_id INT EXEC msdb.dbo.sp_syspolicy_add_object_set @object_set_name=N'Table Names_ObjectSet', @facet=N'IMultipartNameFacet', …
弊社のサイトを使用することにより、あなたは弊社のクッキーポリシーおよびプライバシーポリシーを読み、理解したものとみなされます。
Licensed under cc by-sa 3.0 with attribution required.