関連DBに関するメモ書き

WooCommerceとWordpressのDB構成についておおまかに調査。
調査は不完全なので感想程度のもの。

	wp_commentmeta
		meta_id	主キー
		comment_id
		データは空
	wp_comments
		comment_ID 主キー
		comment_post_ID
		comment_content コメント文が入っている
		コメント関連のデータを扱っているようだがどのような位置付けなのか不明。
	wp_failed_jobs
		id 主キー
		job	text
		現在、空。失敗作業データを格納しているのだろうか?
	wp_links
		link_id	主キー
		link_url
		link_name
		link_image
		現在、空。リンク関連のデータのようだが位置付けが不明。
	wp_mailchimp_carts
		id
		email	主キー
		user_id
		cart text
		メールアドレスが主キーとなっている。
		このemailが表すのは投稿者か?それとも顧客か?
		cartがtextとなっているが、シーケンスデータなのか?それとも何かのメッセージなのか?
	wp_options
		option_id 主キー
		option_name ユニーク
		option_value text
		autoload
		option_nameを指定してoption_valueの値を受け取るということだろう。
		autoloadは何らかの「タイミング」が関係しているのだろう。
	wp_postmeta
		meta_id 主キー
		post_id	ユニーク
		meta_key ユニーク
		meta_value longtext
		投稿データと関連あるテーブル。
		投稿エンティティ1件に対し、当データは複数存在する。
		目的はmeta_valueの取得だろう。
		拡張的な意味があるのかもしれない。
	-------------------------------
	wp_posts
		ID
		post_author ユニーク
		post_date ユニーク
		post_content longtext
		post_title text
		post_status ユニーク
		post_name ユニーク
		post_parent  ユニーク
		post_type ユニーク
		最も主要なテーブル
	wp_queue
		id 主キー
		job text
		attempts	tinyint 試みフラグ?
		キューに関するデータを格納している。
		バッチ処理やクーロンでの処理で利用しているのかもしれない。
	wp_termmeta
		meta_id 主キー
		term_id ユニーク
		meta_key ユニーク
		meta_value 
		タームはタクソノミーの子分類のようなもの。
		タクソノミーはカテゴリやタグの総称。
	wp_terms
		term_id 主キー
		name ユニーク タームの名前
		slug ユニーク 見出し(短い名前)
		term_group bigint グループ化ができるようだ
	wp_term_taxonomy
		term_taxonomy_id 主キー
		term_id ユニーク
		taxonomy ユニーク タクソノミーのコード
		parent bigint
		カテゴリ、タグなどの大分類
		タームとは親的な関係になっているはずである。
	wp_term_relationships
		object_id
		term_taxonomy_id
		term_order
		term_orderは並び替えを意味しているはず。
		だとするとこのテーブルはタクソノミーの並び順管理が主な役割と思われる。
	wp_usermeta
		umeta_id 主キー
		user_id ユーザーID
		meta_key メタキー
		meta_value
		user_idが存在していることから、ログインユーザーごとに異なる値をもつパラメータを管理しているのだろう。
	wp_users
		user_login
		user_pass
		ログインユーザーのデータを保存している。
	wp_wc_admin_notes
		note_id 主キー
		name varchar(255)
	 	contents longtext コンテンツ
		静的なコンテンツテキストを管理していると思われる。
		adminとあることから管理者専用なのかもしれない。
	wp_wc_admin_note_actions
		action_id
		note_id
		name
		query
		status
		note_idが存在することからコンテンツに対し何らかのアクションを組み込んでいる。
	wp_wc_customer_lookup
		customer_id
		user_id
		username
		first_name
		email
		customerという文言から顧客関連だと推測できる
		顧客データとみてもいいかもしれない。
	wp_wc_download_log
		download_log_id
		timestamp ユニーク
		permission_id ユニーク
		user_id
		user_idがあることからログインユーザーごとの記録にも見える。
		だれがダウンロードしたのか記録するテーブルだろうか?
	wp_wc_order_coupon_lookup
		order_id
		coupon_id
		date_created datetime
		discount_amount	double
		顧客が注文の際、使用したクーポンだろうか?
		それともお店側が発行するクーポンの管理?
	wp_wc_order_product_lookup
		order_item_id 主キー
		order_id ユニーク 注文ID
		product_id  ユニーク 商品ID
		customer_id  ユニーク
		date_created  ユニーク
		product_qty	数量
		shipping_amount
		注文のあった商品情報を蓄積するテーブルとみてよかろう。
		WooCommerceの主要なテーブル
	wp_wc_order_stats
		order_id
		parent_id
		date_created ユニーク
		num_items_sold 売れきれ件数?
		gross_total 原価+諸経費を加えた、全部ひっくるめた金額
		tax_total 税金合計
		いわゆる注文テーブル。注文1件に対し1レコード。
	wp_wc_order_tax_lookup
		order_id 主キー
		tax_rate_id 主キー,ユニーク
		date_created
		shipping_tax
		order_tax
		total_tax
		注文データと連動しているテーブルのようだ。
		tax_rate_idがあることから税金テーブルを紐づける枠割もあるようだ。
		税金関連のカラムを取りまとめたテーブルか?
	wp_wc_product_meta_lookup
		product_id
		sku ストック・キーピング・ユニット 商品の最小識別単位。 例えばあるスマホ商品が赤、白、青の3種があれば3SKUという。
		virtual ユニーク
		min_price ユニーク
		max_price ユニーク
		stock_status ユニーク
		onsale
		stock_quantity 在庫量
		商品テーブルではなく、商品の陳列テーブル。
		商品編集画面にて価格を変更すると、このテーブルのmin_priceが変化する。
		商品価格や在庫状況を管理している。
		ユニークキーが多いことから、主要なテーブルの一つだと分かる。
	wp_wc_tax_rate_classes
		tax_rate_class_id
		name 名称
		slug 短い名前
		税率クラステーブルと見えるが?
		商品ごとの課税か?
	wp_wc_webhooks
		WEBフックと読めるが,WEB APIのことかもしれない。
		WEB APIも様々なのでパラメータも様々。
	wp_woocommerce_api_keys
		おそらくAPIキーの管理を行っている。
	wp_woocommerce_attribute_taxonomies
		attribute_id 主キー
		attribute_name
		属性値を管理しているようだ。
		何に使う属性なのかは不明。
	wp_woocommerce_downloadable_product_permissions
		permission_id 主キー
		download_id ユニーク
		product_id ユニーク
		order_id ユニーク
		order_key ユニーク
		user_email
		user_id ユニーク
		downloads_remaining ダウンロード残り?
		access_expires ユニーク
		そもそも何をダウンロードするのか?
		商品IDや注文IDがあるがCSVのダウンロード強化だろうか?
	wp_woocommerce_log
		ログデータを保存しているようだ。
	wp_woocommerce_order_itemmeta
		meta_id
		order_item_id ユニーク
		meta_key
		meta_value
		商品情報のメタデータをセットしているようだ。
	wp_woocommerce_order_items
		order_item_id 注文商品ID
		order_item_name 
		order_item_type
		order_id ユニーク
		顧客から注文が入った商品を登録か?
	wp_woocommerce_payment_tokenmeta
		meta_id
		payment_token_id ユニーク
		meta_key ユニーク
		meta_value
		支払いに関するメタデータを登録しているようだ。
	wp_woocommerce_payment_tokens
		token_id
		gateway_id
		token
		user_id ユニークID
		type
		支払いに関する制御のようだが。。。
	wp_woocommerce_sessions
		セッション関連の保存
	wp_woocommerce_shipping_zones
		出荷ゾーン 単なる地域指定
	wp_woocommerce_shipping_zone_methods
		発送方法についてのデータのようだが、送料に関する記述はない。
	wp_woocommerce_tax_rates
		税金データ
	wp_woocommerce_tax_rate_locations
		地域と税金に関するデータ
	


データ移行についての考察
	
1. 顧客データ
	wp_users,wp_wc_order_product_lookupなど関わっている模様
	ログインユーザーと顧客データは同じ1つのテーブルを見ている可能性あり。(wp_usersテーブル)


2. 在庫/陳列
	wp_wc_order_product_lookupテーブル, wp_wc_product_meta_lookupテーブルなどが関わっている。
	商品価格、SKU, バーゲンセール, 税金, 在庫など関連しており、かなり複雑な部分になる。

3. 税金関連
	「在庫/陳列」と深く関わっている。
	テーブル構造も複雑。
	消費税10%が間もなく施行なのでこのあたりが難しいと思われる。
	詳細な調査結果次第でもありますが、DBまわりの作業も必要になるかもしれない。

4. 配送関連
	商品データとの関連は薄そうなので、WooCommerce管理画面から入力だけで対応できそう。

5. 支払い関連
	PayPayなどいくつかあるが、WooCommerce管理画面だけで対応できそう。

6. ログインユーザーごとの権限。
	WooCommerce管理画面だけで対応できそう。

7. 受注関連
	

画面に関するメモ書き

----------------------------------
画面名:Dashboard
パンくずリスト
	WooCommerce/Dashboard

アクセス
	管理画面の左メニュー→WooCommerce→Dashboard

URL
	http://localhost/hello_woocommerce/wp-admin/admin.php?page=wc-admin

調査
	統計とグラフが表示されている。
	右上にメニューがあり、inbox,orders,stock,reviews,notiecesが存在する。

----------------------------------
画面名:注文
パンくずリスト
	WooCommerce/注文

アクセス
	管理画面の左メニュー →WooCommerce→受注

URL
	http://localhost/hello_woocommerce/wp-admin/edit.php?post_type=shop_order

調査
	新規注文を受け取った際、この画面に表示される。
	「注文」リンクがあり、こちらでオペレータが注文を受けたまることが可能になっているようである。



----------------------------------
画面名:商品(すべての商品)
パンくずリスト
	WooCommerce/商品

アクセス
	管理画面の左メニュー →商品
	管理画面の左メニュー →商品 →すべての商品
URL
	http://localhost/hello_woocommerce/wp-admin/edit.php?post_type=product

調査
	すべての商品を一覧で閲覧できる。
	新商品の登録や編集も可能のようだ。

----------------------------------
画面名:新商品を追加
パンくずリスト
	WooCommerce/商品/新規追加

アクセス
	商品画面の新規追加ボタン
	管理画面の左メニュー →商品→新規追加

URL
	http://localhost/hello_woocommerce/wp-admin/post-new.php?post_type=product

調査
	新商品を追加できるページ。
	WordPressの投稿ページをカスタイズしたページっぽい。




----------------------------------
画面名:商品を編集
パンくずリスト
	WooCommerce/商品/商品の編集

アクセス
	商品の一覧ページなどから

URL
	http://localhost/hello_woocommerce/wp-admin/post.php?post=16&action=edit

調査
	商品名や説明の変更ができるようである。
	商品価格や在庫の設定も可能。
	wp_wc_product_meta_lookupテーブルに商品価格や在庫に値がセットされているようである。


----------------------------------
画面名:販売者商品カテゴリ
パンくずリスト
	WooCommerce/商品/販売者商品カテゴリ

アクセス
	管理画面の左メニュー →商品 →カテゴリー

調査
	カテゴリ名の新規追加や編集ができる。
	カテゴリは商品に不可できる。
	一つの商品に対し、複数のカテゴリを指定できるようだ。


----------------------------------

画面名:在庫
パンくずリスト
	WooCommerce/アナリティクス/在庫

アクセス
	管理画面の左メニュー →アナリティクス→在庫
URL
	http://localhost/hello_woocommerce/wp-admin/admin.php?page=wc-admin&path=%2Fanalytics%2Fstock
調査
	商品ごとに在庫状態を一覧表示できる画面。
	在庫数はwp_wc_product_meta_lookupテーブルに存在している。
	商品が一回注文されるたびに在庫数は減る。比較的シンプルな機能である。
	在庫数がある程度減ったら通知する機能も存在するようだ。

	

Woocommerce | wp_postmetaテーブルのmeta_keyについて

wp_postmetaテーブルのmeta_key

説明は筆者の感想であり、正確なものではないので注意。
meta_keymeta_value説明
_edit_last1
_edit_lock1573193061:1
_thumbnail_id15wp_postsテーブルのpost_id。サムネイル画像の投稿レコードとひもづいている。
_regular_price680通常価格
_sale_price380セール価格
total_sales0
_tax_statustaxable
_tax_class
_manage_stockyesデフォルトはno。WordPress(Woocommers)の商品編集画面にて在庫の「商品単位での在庫管理を有効にする」にチェックを入れるとyesになる。
_backordersyesデフォルトはno。WordPress(Woocommers)の商品編集画面にて在庫の「バックオーダーを受け付けますか ?」を許可にするとyesになる。
_sold_individuallyyesデフォルトはno。WordPress(Woocommers)の商品編集画面にて在庫の「個別販売」にチェックを入れるとyesになる。
_virtualnoデフォルトはno。バーチャルにチェックを入れるとyesになる。バーチャルとは物品でない商品、サービスなどを指す。
_downloadablenoデフォルトはno。ダウンロードにチェックを入れるとyesになる。ここでの「ダウンロード」とはダウンロード販売である。
_download_limit-1
_download_expiry-1
_stock99デフォルトはNULL(在庫制限なしの扱い)。WordPress(Woocommers)の商品編集画面にて在庫数を入力すると、その数値が登録される。
_stock_statusinstock
_wc_average_rating0
_wc_review_count0
_product_version3.7.1
_price380現在の料金。商品編集画面にて更新ボタンを押したとき、セール期間中だとセール価格になり、期間外だと通常価格になる。
_product_image_gallery17wp_postsテーブルのpost_id。ギャラリー画像の投稿レコードを紐づいている。複数指定可能。複数指定する場合はコンマで区切る。
_sku88デフォルト時はこのレコード自体が存在しない。SKUに数値を入力されると登録される。SKUとは商品の管理数、つまり1単位の物品数。
_sale_price_dates_from1573138800デフォルト時はこのレコード自体が存在しない。セール期間の開始日。
_sale_price_dates_to1573916399デフォルト時はこのレコード自体が存在しない。セール期間の終了日。