MySQL実践

2014年4月17日Web-log・ココログ関連,WordPress,パソコン・インターネット

詳しく書こうかと思っているのですが、本日はもう時間が無いのでさわりだけ。

WordPressで読書カードを作っています。

作った時は、まあ満足していたのですが、WordPressのデータベース、つまりはMySQLのテーブルを見ていたら、この「読書カード」の作り方だと、メンテナンス性が悪い事に気が付きました。

「読書カード」のデータは、WordPressのカスタムフィールドに格納されており、その実体は、MySQLの"postmeta"と言うテーブルに格納されています。カスタムフィールドテンプレートのID部分が"meta_key"と言う列に格納されます。そして、格納される時に、IDで指定したままの名前で格納されます。

そうすると何が起きるかと言うと、違うテンプレートを使っていてIDが同じものがあった場合、区別しづらくなります。

また、"meta_key"の値のどれが、カスタムフィールドテンプレートで使われているかの区別ができません。

もちろん、カスタムフィールドの値は、"post_id"と関連づけられているので、表示がおかしくなる事はありません。ただ、MySQLの中身を直接触ろうとした時に、ちょっと厄介になります。

故意にやらない限りは大丈夫だと思うのですが、カスタムフィールドテンプレート以外のPluginで"meta_key"がぶつかる可能性もあります。

これを避けるため、"cft_テンプレート識別子_ID"と言う形に変更する事にしました。でも、MySQLのテーブルの中身を、手で一つ一つ書き換えるのは大変で、間違いを犯す可能性もあります。

それで、SQL文を使って直接書き換える事にし、無事成功しました。

SQLの勉強には、次の本を使っています。

[amazonjs asin="4883378012" locale="JP"]

必要な情報はすべてこの本に載っており、ほぼ、この本の通りで書き換えができたのですが、実際の列名やキーワードの指定の仕方で戸惑いました。やはり、自分でやってみないと言語は身に付きませんね。

Posted by お市のかた