バグ報告 > その他 > DB設計 プライマリキーが無い |
その他
スレッド表示 | 新しいものから | 前のトピック | 次のトピック | 下へ |
投稿者 | スレッド |
---|---|
seasoft |
投稿日時: 2008/6/7 12:35
対応状況: −−−
|
神 登録日: 2008/6/4 居住地: 投稿: 7367 |
DB設計 プライマリキーが無い テーブルにプライマリキーを全く持たないテーブルが多数存在するのですが…
意図的に張っていないのでしょうか? 個人的には設計ミスレベルにも感じてます。 一部にはユニークインデックスを張っているようですが、そういうポリシー? pgsql と mysql の互換性の都合? プライマリキーの存在を知らない方が設計した? 今の時代は、プライマリキーなんてダサい? oid を有効にしてるつもり? … う〜ん、分かりません。
|
seasoft |
投稿日時: 2008/6/7 13:04
対応状況: −−−
|
神 登録日: 2008/6/4 居住地: 投稿: 7367 |
ちなみに… dtb_pagelayout 080107_detabase.xls によると、
[dtb_pagelayout].[url] には、PKEY1 と記載があります。 しかし、作成された dtb_pagelayout テーブルには、プライマリキーが存在しません。 これは非常に根深い問題を抱えています。 ・page_id = 0 のとき、url は重複するので url をプライマリキーとすべきではない。 ・url の重複に気づいて、プライマリキーからはずしたなら、url にインデックスを張ることを検討すべき。(url をキーとした検索が存在する。) また、設計書も改定して欲しいところです。 ・page_id は重複しない前提だろうから、プライマリキーを張るべき。(推測) ちなみに、こういった変更をする場合って、 ・html\install\sql\create_table_pgsql.sql ・html\install\sql\create_table_mysql.sql あたりを 変更 するのでしょうか? それとも、ALTER で提供する手順などがあるのでしょうか? また、一開発者が突然、テーブル定義を変更するのは非常にリスクが高いと思いますが、(コミュニティ版に)担当コミッタなどいらっしゃるのでしょうか?
|
seasoft |
投稿日時: 2008/6/8 18:09
対応状況: −−−
|
神 登録日: 2008/6/4 居住地: 投稿: 7367 |
Re: ちなみに… dtb_pagelayout さらに、バグを見つけました。
管理機能のプレビューで使った行と、フロント機能で url が重複するので、 プレビュー時の内容が、フロント画面に表示されるケースがあります。
|
nanasess |
投稿日時: 2008/6/8 22:08
対応状況: −−−
|
神 登録日: 2006/9/9 居住地: 投稿: 2314 |
Re: ちなみに… dtb_pagelayout 元々, UNIQUE と NOT NULL で PRIMARY KEY の代用をしていたようです.
2.x から新しく追加したテーブルに関しては, PRIMARY KEY を作るようにしました. (データ長指定しなければならない MySQL の一部のテーブルは除きます) 個人的には, 是非とも修正したいのですが, リソースが割けず... EC-CUBE 3 とかにして, 今の構成を一掃できるのなら, きちんと PRIMARY KEY を貼りたいものです. |
スレッド表示 | 新しいものから | 前のトピック | 次のトピック | トップ |