ECCUBE 2.13.x シーケンステーブル

ECCUBE 2.13.x系のテーブルを見ると、
「_id_seq」で終わるテーブルがある。

各テーブルで主キーに「Audo_Incliment」を指定すれば良いもののを、
あえて、テーブルで管理している。

まあ、いいんだけど、この_id_seqで終わるテーブルが、
以外に多くて、テーブルを探すときに、邪魔・・・

***

ということで、

すで、Eccube 3.x系が主流なので、移行すべきなところはさておき、
これらのシーケンステーブルを削除し、1つのテーブルにまとめてみた。

新たに作成したテーブルは、「_sequence」とし、
項目は、以下の通りである。

  • seqeuence_name [varchar(64)] :シーケンス名
  • sequence[int]:
  • updated[datetime]: 保守用最終更新時刻

SC_Query_Exで、クラスを拡張したのが、以下のコードで、
「_sequence」というテーブルがあるときのみ、作動する。
※シーケンス名が存在するかも、チェックしたほうがいい。

ポイント

$this->conn->nextID で、値を拾ってきているのに対し、

nextValを使っているコードを、すべて書き直すわけではなく、
nextVal内での取扱い、
「_sequence」へ個別にupdate / selectしているだけなので、
コードの修正は、最小限となっております!

<?php

require_once CLASS_REALDIR . 'SC_Query.php';

class SC_Query_Ex extends SC_Query
{
    /**
     * 次のシーケンス値を取得する.
     *
     * @param string $seq_name 取得するシーケンス名
     * @param integer 次のシーケンス値
     */
    public function nextVal($seq_name)
    {
    	$nextID	= $this->conn->nextID($seq_name); // 元に戻すときのために、実行


    	// 試験中
	if ($ret = $this->query("show tables like '_sequence'")) {
		//
		$this->update('_sequence',
				array('sequence' => 'sequence + 1', 'updated' => 'now()'),
				"sequence_name = '$seq_name'");
			$_ = $this->currVal($seq_name);
			if (empty($_)) {
				// レコードが無いとき
				$this->insert('_sequence', array($seq_name, $nextID));
				return $nextID;
			}
		} else
	        return $this->conn->nextID($seq_name);
    }

    /**
     * 現在のシーケンス値を取得する.
     *
     * @param  string  $seq_name 取得するシーケンス名
     * @return integer 現在のシーケンス値
     */
    public function currVal($seq_name)
    {
    	// 試験中
	if ($ret	= $this->query("show tables like '_sequence'")) {
		//
		$ret	= $this->select('sequence', '_sequence', "sequence_name = '$seq_name'");
var_dump($seq_name. ': '. $ret[0]['sequence']);
		return $ret[0]['sequence'];

	} else
		return $this->conn->currID($seq_name);
    }
}

※動作確認したが、実運用はしていない状態のコードなので、要修正

一応、動くは動くものの、
1日1万件の処理とかになると、耐久性には心配が残ります。

-

クラウドドライブの比較(無料枠で使い分ける)

現在、使用中のクラウド系ドライブ

  1. Dropbox(無料枠を拡張子7GB / 更新頻度 > 仕事用のファイル)
  2. Google Drive(無料枠で15GB / 更新頻度 > プログラム配布用:)
  3. OneDrive(無料枠で30GB / 更新頻度 > 低画像保存など)
  4. iCloud(無料枠で5GB / iPhoneのバックアップのみ|写真除く)
    ※Yahoo BOX(アプリがないため、未使用)

今回、写真だけであれば、無制限に使えるAmazon Driveを追加しました。(プライム会員に限る)

いずれも、無料枠で運用していますが、それぞれの比較など。

Dropbox

仕事用として、Dropboxを使用するのは、
無料枠は少ないものの、更新プログラム自体が優秀で、
一時、無料枠が多い、Google Driveに移行を検討しましたが、
更新が反映されまで、1~3分かかるため、

結局、Dropboxで、写真などを除外し、枠内で収まるようにしました。

10GB単位での契約や、100GBだけなど、もう少し安価なプランがあればいいのだが、
1TB 1200円のプランしかないため、
現状の無料枠(拡張済み)で事足りる現状。

ファイルが即時に更新され、便利だが、
特定のフォルダーは非同期にできるが、特定のファイル・拡張子だけを除外出来ないのが、残念。

特に、プログラムの実行ファイルが、毎回動悸されてしまうため、
Dropboxの更新を、一時停止し、まとめてアップしないと、
通信料の上限に、あっという間に達してしまう。

 

Google Drive

他PCへのファイル反映がかかるのが難点ですが、
別のGoogle アカウントで共有ができるため、
客様用のプログラムの配布などに、使用。

配布頻度は低いが、ログファイルなどを手元で確認できるため、重宝。

 

OneDrive(旧Sky Drive)

一時、使用枠無制限として、話題となりましたが、
どこぞのアホタレが、75TB(テラ)も使用したため、
無制限は廃止になりましたが、

それでも、無料で使える枠がダントツ多いため、
iPhoneの写真のバックアップを主に、使っていましたが、
あっという間に、上限に達してしまいます。

有料プランにした場合、1TBをもっとも安く契約できる。
また、母体はMicrosoftなので、Officeが使えるプランも用意されており、年間12000円前後。

 

iCloud

iPhoneのバックアップとして、使用。

写真を入れると、あっという間に、5GBの枠をオーバーしてしまうため、
写真以外のファイル=電話番号などを、バックアップ。

 

さて、今回の本題の1つ。

Amazon Drive

プライム会員になると、プライムビデオ(24や新しくはないが、映画)も見れる上、
写真が無制限に保存出来てしまう!

OneDriveも既にいっぱいで、iPhoneの写真のバックアップもしておきたいので、
今回、Amazon Driveに写真のすべてをアップロードしているところ。

 

動画もアップロードされるため、動画は削除しないと、
5GBの枠を使い切ってしまうため、これらは極力削除するとして、

過去に使用していたiPhoneなどの写真ファイルも、
Macに入っており、既に必要ない写真もたくさんあるが、
これらもまとめて、Amazon Driveで管理するとして、

 

***

 

今後も増えていくだろう音楽ファイルが、今、50GBほどあり、
複数のPCで、同じ状態を作りたいところで、

目下、

  1. OneDrive ビジネス(ストレージのみ / 1TB)6480円/年
  2. WD Cloud(WestanDigitalの製品で、社内にネットワークHDDを置き、専用のクラウドソフトで同期 / 3TB) 20000円

で、悩んでいるところ。

過去に、2台壊れた経緯があり、
自前でNASを管理するのは、リスクを伴うのが、気がかりだが、

WDCloud自体が、USBの外部HDDを持つことが出来、
バックアップにも、増量にも対応しているので、万が一には備えられるが、

各PCにも同ファイルが出来ているので、特に気にすることもないか?

2017-06-14 追記

Amazon Driveの5GBのフリースペースが、
動画のアップロードにより、いっぱいになった。

なので、

Google Photoに全て移行。

昔、規約で著作権が、Googleに移転するなど、と騒がれていたが、
個人的には、別に、気にかけるほどのことでもなく、

  • 16Mpx(一変1000px以上)の画像
  • 1080p以上の動画

は、圧縮されるが、バックアップなので、
特に着することもないだろうと。

圧縮後の画像を拡大してみましたが、まあ殆どわからない状態。
写家などシビアな人は、気にするかもしれないけど、

iPhoneで撮影した写真・動画であれば、全く問題なく。
容量無制限で使えるのは、ネ申!

 

-