DB+CSV
今、仕事を受注してPHP+MySQLで情報サイトの開発を行っているのですが
お客さんが結構頻繁に仕様を変更を要求してきたり
・共通項目は20カラムほど
・非共通カラムは60~70カラム
計80~90(100)カラムx7種類って感じになりそうです。
でこの非共通カラム部分をCSV形式で管理するのはどうかな?っと思ったのですが
(正規化して共通部分とそうでない部分をわけろって言われそうですが)
デーブル設計を
主キーカラム(オートナンバー)
共通項目Aカラム
共通項目Bカラム
共通項目Cカラム
情報タイプ(7種類ほど)
CSVを格納するカラム
CSV部分の設計は
「項目名(値)」って感じにそればいいかなって思いました。
(や)や仕切り部分「,」に関してユーザが入力した場合はPHP上で全角に置換してデータベースに格納
例)
A(1),B(あいうえお),C(0)・・・・・・
A(0),B(かきくけこ),C(0)・・・・・・
A(0),B(たちつけと),C(1)・・・・・・
A(1),B(かきくけこ),C(0)・・・・・・
で検索時にはWhere部分を
非共通項目のカラム名をitemとしたら
item like '$A(1)%' And item like '$C(0)%'
って感じで検索させればいいかな?と思ったのですが
・そもそもこういう設計(DB+CSV)は駄目ですか?
・もしこういう設計でやった場合のデメリットはなんですか?
・やはり項目ごとにカラムを作った方がいいですか?