MySQL実践
詳しく書こうかと思っているのですが、本日はもう時間が無いのでさわりだけ。
WordPressで読書カードを作っています。
- WordPressで読書カード[追記あり] : プラスα空間 (2012年4月21日)
作った時は、まあ満足していたのですが、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"]必要な情報はすべてこの本に載っており、ほぼ、この本の通りで書き換えができたのですが、実際の列名やキーワードの指定の仕方で戸惑いました。やはり、自分でやってみないと言語は身に付きませんね。
ディスカッション
コメント一覧
まだ、コメントがありません