質問をすることでしか得られない、回答やアドバイスがある。

15分調べてもわからないことは、質問しよう!

新規登録して質問してみよう
ただいま回答率
85.48%
MySQL

MySQL(マイエスキューエル)は、TCX DataKonsultAB社などが開発するRDBMS(リレーショナルデータベースの管理システム)です。世界で最も人気の高いシステムで、オープンソースで開発されています。MySQLデータベースサーバは、高速性と信頼性があり、Linux、UNIX、Windowsなどの複数のプラットフォームで動作することができます。

WordPress

WordPressは、PHPで開発されているオープンソースのブログソフトウェアです。データベース管理システムにはMySQLを用いています。フリーのブログソフトウェアの中では最も人気が高く、PHPとHTMLを使って簡単にテンプレートをカスタマイズすることができます。

PHP

PHPは、Webサイト構築に特化して開発されたプログラミング言語です。大きな特徴のひとつは、HTMLに直接プログラムを埋め込むことができるという点です。PHPを用いることで、HTMLを動的コンテンツとして出力できます。HTMLがそのままブラウザに表示されるのに対し、PHPプログラムはサーバ側で実行された結果がブラウザに表示されるため、PHPスクリプトは「サーバサイドスクリプト」と呼ばれています。

Q&A

解決済

3回答

2412閲覧

データベースでテーブルにつける名称について「アンダースコア」をつける理由とは?

dakarakarad

総合スコア17

MySQL

MySQL(マイエスキューエル)は、TCX DataKonsultAB社などが開発するRDBMS(リレーショナルデータベースの管理システム)です。世界で最も人気の高いシステムで、オープンソースで開発されています。MySQLデータベースサーバは、高速性と信頼性があり、Linux、UNIX、Windowsなどの複数のプラットフォームで動作することができます。

WordPress

WordPressは、PHPで開発されているオープンソースのブログソフトウェアです。データベース管理システムにはMySQLを用いています。フリーのブログソフトウェアの中では最も人気が高く、PHPとHTMLを使って簡単にテンプレートをカスタマイズすることができます。

PHP

PHPは、Webサイト構築に特化して開発されたプログラミング言語です。大きな特徴のひとつは、HTMLに直接プログラムを埋め込むことができるという点です。PHPを用いることで、HTMLを動的コンテンツとして出力できます。HTMLがそのままブラウザに表示されるのに対し、PHPプログラムはサーバ側で実行された結果がブラウザに表示されるため、PHPスクリプトは「サーバサイドスクリプト」と呼ばれています。

0グッド

1クリップ

投稿2019/02/09 18:20

WordPressで開発中に、メタデータへの名前の付け方で疑問に感じたことを質問させてください。

多くのプラグインなどではキーに「_name」のように、「アンダースコア」が入っています。

これはなぜでしょうか?

メリットデメリットがございましたらご指南頂けますと幸いです。

よろしくお願い致します。

気になる質問をクリップする

クリップした質問は、後からいつでもMYページで確認できます。

またクリップした質問に回答があった際、通知やメールを受け取ることができます。

バッドをするには、ログインかつ

こちらの条件を満たす必要があります。

guest

回答3

0

ベストアンサー

「カスタムフィールドのフィールド名の先頭にアンダースコアがある場合があるのはなぜか?」というご質問だと理解しました。もしこの理解が正しければ、以下それへの回答です。

キーの先頭にアンダースコアを付けるのはそのフィールドを private 扱いにするためのルールで、そうしておくと編集ページに表示されない、といったところではないでしょうか。メリットは「管理画面にログインしたユーザが値を編集してしまうのを防ぐことができる」ですかね。

以下 Codex からの引用です。

If you are a plugin or theme developer and you are planning to use custom fields to store parameters related to your plugin or template, it is interesting to note that WordPress will not show custom fields which have keys starting with an "_" (underscore) in the custom fields list on the post edit screen or when using the the_meta() template function. This can be for example used to show these custom fields in an unusual way by using the add_meta_box() function.

以下その他参考ページです。

投稿2019/02/10 08:02

gh640

総合スコア1407

バッドをするには、ログインかつ

こちらの条件を満たす必要があります。

dakarakarad

2019/02/10 12:53

とても納得のいくお答えでした。ありがとうございました。
guest

0

一般的なRDBMSではテーブル名に使える文字には制限があり、アルファベット、数字、アンダーバー程度である事が多いです。
となると、単語を連結させる文字としては「_」が使われるのが当然ですよね。
CustomerAddressとか、(アッパー)キャメルケースで書くこともできますが、テーブル名に大文字と小文字を混在させるとミドルウェアのバージョンアップ時等に問題になることもありますので、避けた方が面倒がなくていい。
WordPressに限らず、他の一般的なテーブル命名規則はスネークケース仕様になっていると思いますよ。

投稿2019/02/10 06:53

kunai

総合スコア5405

バッドをするには、ログインかつ

こちらの条件を満たす必要があります。

dakarakarad

2019/02/10 07:43

ありがとうございます。難しいですね。たとえば投稿に日付のメタデータを自分で付与するとして、「meta_date」よりも「_date」の方が一般的なのでしょうか?
kunai

2019/02/10 07:50

Wordpressにはあまり詳しくないのでピンポイントな回答は出来ませんが。 仮に「post(投稿)」というテーブルがある場合に、それに関連した「投稿日時」のテーブルを作りたいと考えるのであれば、私でしたら「投稿に付随する関連情報」として「post_meta」とか「post_extra」とかそういう感じの名前にしますかね。 その上で、カラム名として「post_date」とかつける感じで。 ただ、Wordpress上の命名規則があるのであれば当然それに従ってください。 また、「_」はあくまで単語の連結に使用するものですので、文頭に「_」がついた「_date」等のテーブル名は意味がありません。 調べてませんが、DBMSによっては先頭文字に「_」を使うことを禁止しているものもあるんじゃないかなと思えます。
dakarakarad

2019/02/10 12:53

なるほど、ありがとうございます。gh640様のご回答によれば、どうやらWordpress上の命名規則とやらがあるようでした。
guest

0

WordPress詳しいわけではないですが、単純にWordPressの命名規則のようなものではないでしょうか。
中には予約語との衝突を避ける役割だったりプレフィックス(接頭辞。これも予約語との衝突避けたり「このシステムの」という区別をつけるために使われます)だったり、あると思います。

追記
WordPressの予約語との衝突を避けるためかもしれませんね。

投稿2019/02/09 22:00

編集2019/02/09 22:06
m.ts10806

総合スコア80850

バッドをするには、ログインかつ

こちらの条件を満たす必要があります。

dakarakarad

2019/02/09 22:49

なるほど、ありがとうございます。自分で開発するのであれば、「my_」をつけておけば良さそうでしょうか。
m.ts10806

2019/02/10 00:29

それは仕様なので、WordPress側の推奨する仕様とあわせて決めてください。 もし問題が出てもそこは変更すればいいだけの話です(もちろん公開するのであればそれなりに検証してくださいね)
dakarakarad

2019/02/10 07:45

使い方の多様性に合わせての「_xx」であればそうすでべきなのでしょうけど、どのような多様性に起因してのものなのか、悩ましいところです。引き続き調べてみます。ありがとうございました。
guest

あなたの回答

tips

太字

斜体

打ち消し線

見出し

引用テキストの挿入

コードの挿入

リンクの挿入

リストの挿入

番号リストの挿入

表の挿入

水平線の挿入

プレビュー

15分調べてもわからないことは
teratailで質問しよう!

ただいまの回答率
85.48%

質問をまとめることで
思考を整理して素早く解決

テンプレート機能で
簡単に質問をまとめる

質問する

関連した質問