問題タブ [field-names]
For questions regarding programming in ECMAScript (JavaScript/JS) and its various dialects/implementations (excluding ActionScript). Note JavaScript is NOT the same as Java! Please include all relevant tags on your question; e.g., [node.js], [jquery], [json], [reactjs], [angular], [ember.js], [vue.js], [typescript], [svelte], etc.
shadowing - フィールド名のベスト プラクティス (シャドーイングまたは複合名)
上の赤いブロック (これは主観的な質問であり、クローズされる可能性があることを警告しています) のように、これに関する明確な法律は存在しない可能性がありますが、なぜそれが質問をクローズすることを正当化するのかわかりません。
...わきに暴言
永続化フレームワークとして Hibernate を実装することを計画しています。これにより、実装時に問題が解決する可能性がありますが、クラスとサブクラスに変換される DB テーブルがあります (実際の生活に存在する多くの詳細と複雑さは省略されています :) ):
したがって、何をすべきか、そしてその理由は次のとおりです。
シャドーイング:コンパイル時にタイプが不明なオブジェクトを操作する場合
、これらをそのままにしておくことができます。
複合名:
すべてのフィールドの前にクラス名 ie a.aName
andb.bName
を付けて名前を付けることができますが、実際には非常に見苦しくなります: Door.DoorName
andRotatingDoor.RotatingDoorName
ゲッターとセッター:
JavaBeans ではこれらはフィールド名から派生するため、これについては言及しませんでした。Hibernate は注釈付きの POJO を使用していると思います。
結果に少し影響を与えるために、少なくともクラスが定義済みa
の抽象クラスを拡張し、適用可能な場合はそれ自体でシャドウする私の場合では、シャドウイングが最も堅牢であるようです。複合名を使用すると、すべての DB テーブルに列を追加したい場合、そのフィールドを各型に追加する必要があります (そして、継承のポイントは何ですか?!)Name
b
Name
NickName
最後に、できればこれらの手法の 1 つまたは複数の実装の賛否両論を経験したことがある人々が、この問題について何を言わなければならないかを調べることにしました。または、便利なストーンエッチングのベストプラクティスで十分です:)
-Nomad311
database - データベースのタイムスタンプフィールドの名前付けの提案
データベーステーブルを作成するとき、時刻/日付/タイムスタンプフィールドに名前を付けようとすると困惑することがよくあります。edit_dateやexpiration_dateのように簡単な場合もありますが、それほど簡単ではない場合もあります。冗長に見えるので、フィールド名でテーブル名を繰り返すのは好きではありません。テーブルがある場合posts
、タイムスタンプフィールドは次のようにする必要がありますpost_date
か?明らかに、フィールド名に日付/時刻/タイムスタンプを使用するべきではありません(できませんか?)。ただし、オプションがある場合は、それらが最良の選択のように見えることもあります。
時間関連のフィールドに名前を付けるための論理的な命名規則はありますか?この質問はおそらく明確に答えることができないので、私は先に進んで、最初からそれをwikiしました。すべてを入力したのは些細でばかげているように見えますが、過去にフィールド名に苦しんで共感する人が他にいることを願っています。
編集:
関連するフォローアップの質問として、日付コンポーネントだけではない日時/タイムスタンプデータ(DownloadDateとDownloadTimeと他の何か)を処理するときに、フィールド名に「time」または「date」を使用しますか?
sql-server - MicrosoftSQLクエリアナライザにフィールド名を保存する
「MicrosoftSQLQueryAnalyzer」(バージョン8)を使用してSQLクエリの結果を保存すると、クエリの結果は保存されますが、列ヘッダー(フィールド名)は保存されません。フィールド名を結果ファイルにも保存する方法はありますか?
ruby-on-rails - Rails->IDに「set_primary_key」のような「updated_at」を使用して何かを行う
「LastModifiedDate」フィールドを持つレガシーテーブルがあり、その列を「updated_at」列として使用したいと思います。
Railsにそのフィールドを使用するように指示する方法はありますか?
または、言い換えさせてください。:) ... Railsにそのフィールドを使用するように指示するにはどうすればよいですか?:)
ありがとう!
mybatis - 異なるテーブルでフィールド名が重複していると、mybatisでの`SELECT`クエリが複雑になります
created_at
行が挿入されたときに表すタイムスタンプである、という名前のフィールドを持つテーブルがいくつかあります。
今、私は永続層としてmybatis 3を使用していますが、で何かをクエリすると少し退屈であることがわかりましたjoin
。
私がすべての質問とその答えを得ると期待した単純なSQLを見てください:
しかしquestions
、answers
両方にフィールドがあるため、結果セットに2が含まれているcreated_at
ことがわかりました。また、2番目のフィールドは無視されます。したがって、回答の値は、正しくありません。select q.*, a.*
created_at
created_at
questions
これを避けるために、私は2つの方法を見つけましたが、どちらも良くありません。
各テーブルのフィールド名を変更し、それらが同じでないことを確認します。例:
questions.created_at
->questions.q_created_at
、answers.created_at
->answers.a_created_at
。id
、、、などのフィールドがたくさんあるため、これは良くありませんname
。データベースを読みにくくし、これらの名前を変更するために維持するのが難しくなりますtitle
。updated_at
SQLを変更します。次のように、SQLのフィールド名を変更します。
SQLのすべてのフィールド名を変更する必要があるため、これは良くありません。非常に長くて読みにくくなり、そのようなSQLを毎回書くのは面倒です。
私はmybatisを初めて使用しますが、この問題に対するより良い解決策はありますか?
java - Java/Scala はタイプセーフな方法で Field 参照を取得します
Java はオブジェクト指向でタイプセーフであると主張しており、Scala はそれ以上です。
内部クラス フィールドは、Reflection API を介して参照を取得できる Field と呼ばれるクラスによって表されます。
私の質問: これらの言語は、その Field 参照をタイプセーフな方法で取得する方法を提供していますか? (そして、もしそうでなければ、なぜ地球上ではないのですか? 明らかな欠陥のようです)
Object を何らかの外部表現 (テンプレートの html フィールドやデータベースの列名など) にマッピングして、参照名を自動的に同期させる場合に非常に便利です。
理想的には、次のようなことを言いたいです。
フィールド宣言の名前を取得するには、Java 列挙型で次のように言います。
[更新:] この機能が Reflection API の意図に何らかの形で違反するというフィードバックを読んだ後、Reflection はコンパイル時に未知のもののために設計されていることに同意します。コンパイル時にわかっていること、つまりコンパイルしているまさにそのクラスのフィールドを学びます!
コンパイラはこれを列挙型に提供するため、コンパイラが列挙型フィールドの参照にアクセスして MyEnum.SOME_INSTANCE.name() を許可できる場合、これと同じ機能を通常のクラスにも提供できない論理的な理由はありません。 .
この機能が通常のクラスに存在しない技術的な理由はありますか? なぜそうしないのかわかりませんが、この機能が物事を「複雑にする」ことに同意しません...逆に、現在の面倒なReflection APIテクニックを大幅に簡素化します。開発者に、コンパイル時にわかっていることを見つけるために、なぜ Reflection を強制するのでしょうか?
[更新 #2] この機能の有用性についてですが、JPA または Hibernate で Criteria API を使用してクエリを動的に構築しようとしたことがありますか? クエリ対象のフィールドの安全でない文字列表現を渡さなくて済むようにするために人々が思いついたばかげた回避策を見たことがありますか?
[更新 #3] 最後に、Ceylon と呼ばれる新しい JVM 言語がこの要求に注意を払い、これを簡単に実行できるようにしました。
mysql - 最初の行に列名が動的に挿入されたmysqlからCSVへ
元の質問を大幅に修正しています...
これは、最初の行にフィールド名がある CSV にテーブルをダンプするのに最適です。
ただし、何百ものフィールドがあり、新しいフィールドが追加されたり、フィールドが変更または削除されたりする場合は、フィールド名を上記の形式で動的に配置する動的なものが必要なので、このクエリはスクリプトでいつでも機能します。フィールド名を手動で更新します。
python - 名前付きタプルのリストをフィールド名でソートするPythonの方法
フィールド名のインデックスを覚えていなくても、名前付きタプルのリストを並べ替えたい。私の解決策はかなり厄介なようで、誰かがもっとエレガントな解決策を持っていることを望んでいました。
ありがとう、ニック
vb.net - Filehelpers.dll を使用して出力にフィールド名を表示する
出力にフィールド名を表示したいのですが、これを解決する方法がわかりません。誰でも助けてください..
Test.aspx.vb
IFFormat.vb
私が得たサンプル出力xxxxxxxxxxx.log
:
私が望む出力:
php - フィールドの値が「1」でid=$idであるフィールド名をリストします
フィールドid、p1、p2、p3を持つテーブル'jobs'があり、p1、p2、p3の下のいくつかのエントリの値は'1'です。id = $ idであるテーブルジョブの行で値が「1」のフィールド(p1、p2、または3)の単純なリストを取得するにはどうすればよいですか。