New issue
Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.
By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.
Already on GitHub? Sign in to your account
DBスキーマの見直し #210
Comments
@chihiro-adachi |
@ttsuru 方針としては、修正すべきものは修正するという方向性でいきたいと考えています。 3からのマイグレーションについては対応していきます。 |
@chihiro-adachi 3の中でのマイグレーションを実装し、問題なく動くようになってから、スキーマの変更に着手して欲しいと強く思います。 |
@ttsuru 3を定めた上で、どう移行を支援するのかを決めていきましょう。 |
個人的には複合主キーの方が勝手が良かったですが、サロゲートキーとするなら、テーブルに紐付いたシーケンスに戻せないですかね。テーブルデータを直接書き足す時に、シーケンスの扱いが結構面倒で。 ・・・と書きつつ、数日前にやったカスタマイズで、シーケンスの書き換えを漏らしていたことを思い出したり 😱 |
他の RDBMS との互換性を考えると smallint の方が良いと思いますがいかがでしょう? |
@seasoftjapan |
やっぱりORM嫌い。とりあえずシーケンスの件だけでも叶うと嬉しいです。 あと1点。 |
移行の仕組みやどうやって移行できるかがわからないうちに3の形式を定めてしまうと、結局のところ移行が上手くいかない可能性があるのではないでしょうか。 table(ORMと切り分けて)のネーミングやちょっとした命名を変更してもほとんどsilex上で書いているコードに変化はなく、DBに差分が生まれるだけなのかなと思ってしまいます。 仕様を検討することはいいともいますが、本当に今タイミングでそれを実装する必要があるのでしょうか。 |
@nanasess |
移行に関しては、EC-CUBE 以外からの移行も多々やりましたが、双方のデータ構造さえ把握できれば、さほど難は無かったです。生パスワードを抜けないとか、もっと根本的な所でのネックはありましたが。 過去の傾向からすると、2.13 → 3.0 よりも、2.12 → 3.0 とか 2.13 → 3.1 の方が需要が高いと思いますので、そのあたりもどこまでカバーできるかも、移行を検討する上では課題だと思います。 |
みなさんご意見ありがとうございます。 @ttsuruさんのお話は単純に移行の話だけでなく、機能変更がないのに、スキーマが変更することは、移行のハードルをあげるだけという、懸念だと思ってます。スキーマについては、いただいた懸念も踏まえて、機能のブラッシュアップを進めながらFixさせていければと存じます。3系の機能についても、より具体的に示せるように資料等準備させていただきますので、別途フォローお願いします。 移行については、@seasoftjapan さんのように、EC-CUBE2.13系までは、DBへの直接的なカスタマイズも多く、また移行元となるバージョンにもばらつきが激しいことが想定されます。2系以下については、標準で移行をサポートしようとしても、結局はしきれない可能性が高く、Seasoft様のおっしゃるように、データ構造の違いを明確にして、移行をフォローしていく事に重点を置きたいと思います。 また、3の機能としてのマイグレーションも行っていく予定ですので。 3の中でのマイグレーションは、 @chihiro-adachi が記載しているように、検証中ですが、まとまり次第もうすこし具体的に公開していきます。 |
いただいたご意見もふまえ、スキーマ変更についての方針を再度作成しました。 変更が発生するケースは以下になります。
細かな変更は極力避け、開発時の負荷になるもの、機能変更が発生する場合を念頭においています。 方針
命名規約省略名称省略名称を利用せず、正確な名称で命名する
単数形単数形で命名する
スネークケーススネークケースで命名する
プレフィクステーブルには種別によってプレフィクスをつける マスタテーブル
データテーブル
フラグフラグとして利用しているカラムはsmallintで扱う 複合主キーの扱い複合主キーは利用せず、サロゲートキーを利用する 20145/6/16 本ISSUEへ上記内容を反映しました。 |
beta2 の yml を確認すると、 まだ smallint のままになっているようですが、これから変更される予定でしょうか? |
フラグとして利用しているカラムはsmallintで扱う 形で最終Fixしております。 |
データベースのスキーマについて、仕様変更点も含め見直しを行っています。
以下の方針で進めています。
方針
命名規約
省略名称
省略名称を利用せず、正確な名称で命名する
dtb_deliv -> dtb_delivery
単数形
単数形で命名する
dtb_products -> dtb_product
スネークケース
スネークケースで命名する
dtb_classcategory -> dtb_class_category
プレフィクス
テーブルには種別によってプレフィクスをつける
マスタテーブル
mtb
をプレフィクスとしてつけるmtb_pref
データテーブル
dtb
をプレフィクスとしてつけるdtb_customer
フラグ
フラグとして利用しているカラムはsmallintで扱う
複合主キーの扱い
複合主キーは利用せず、サロゲートキーを利用する
※多対多の中間テーブルは除く
The text was updated successfully, but these errors were encountered: