データベースコマンドとのトレードオフ


アニメ『ステラのまほう』
ゲーム制作の部活をする女子高生のアニメ。ゆるゆるです。ゲームは、絵、音楽、シナリオ、スクリプトが上手く調和して、面白いゲームになります。
スクリプトだけ優れていても、絵や音楽が貧弱だと感動が薄れるし、良い絵と音楽とシナリオがあっても、スクリプトがバグバグだとプレイヤーのやる気が削がれます。バランスが大事です。

プログラミングは、どうにでも書けるので、どうとでもなります。目的達成するかしないかではなく、達成するのは当たり前として、どのぐらい効率よくなるかってところが大事ですね。そこでトレードオフが出てきます。
全部ソフトウェアで書けるけども、ハードウェアに処理を負かせることで処理時間を短縮したり、全部ハードウェアで組めるけども、ソフトウェア化することで開発スピードを短縮したり。
今回は、データベース上のコマンドと、いつも使っているbash上でのコマンドのトレードオフで、半半かな、というバランスでスクリプトを作ってみました。
WordPressのテーブルの全フィールド名を表示するスクリプトです。

     1	sql_exe="mysql -sN -uroot -pパスワード mydb -e"
     2	
     3	
     4	tables=`$sql_exe "SHOW TABLES"`
     5	for m in $tables;do
     6	        echo $m
     7	        $sql_exe "SHOW COLUMNS FROM $m" | awk '{printf "        %s\n",$1}'
     8	done

実行すると、以下のように表示されます。

wp_commentmeta
        meta_id
        comment_id
        meta_key
        meta_value
wp_comments
        comment_ID
        comment_post_ID
        comment_author
        comment_author_email
        comment_author_url
        comment_author_IP
        comment_date
        comment_date_gmt
        comment_content
        comment_karma
        comment_approved
        comment_agent
        comment_type
        comment_parent
        user_id
wp_links
        link_id
        link_url
        link_name
        link_image
        link_target
        link_description
        link_visible
        link_owner
        link_rating
        link_updated
        link_rel
        link_notes
        link_rss
wp_options
        option_id
        option_name
        option_value
        autoload
wp_postmeta
        meta_id
        post_id
        meta_key
        meta_value
wp_posts
        ID
        post_author
        post_date
        post_date_gmt
        post_content
        post_title
        post_excerpt
        post_status
        comment_status
        ping_status
        post_password
        post_name
        to_ping
        pinged
        post_modified
        post_modified_gmt
        post_content_filtered
        post_parent
        guid
        menu_order
        post_type
        post_mime_type
        comment_count
wp_site_cache
        hash
        content
        device_url
        type
        post_type
        headers
        user_agent
        server
        updating
        create_time
        expire_time
wp_sitemanager_device
        device_id
        device_name
        keyword
        builtin
wp_sitemanager_device_group
        group_id
        group_name
        theme
        slug
        priority
        builtin
wp_sitemanager_device_relation
        group_id
        device_id
wp_term_relationships
        object_id
        term_taxonomy_id
        term_order
wp_term_taxonomy
        term_taxonomy_id
        term_id
        taxonomy
        description
        parent
        count
wp_termmeta
        meta_id
        term_id
        meta_key
        meta_value
wp_terms
        term_id
        name
        slug
        term_group
        term_order
wp_usermeta
        umeta_id
        user_id
        meta_key
        meta_value
wp_users
        ID
        user_login
        user_pass
        user_nicename
        user_email
        user_url
        user_registered
        user_activation_key
        user_status
        display_name

Leave a Reply

Your email address will not be published. Required fields are marked *

CAPTCHA