お世話になります。
環境
php・・・5.6
mysql・・・5.7
apache・・・2.4
現在、一対多の関係にあるデータをcsv形式でインポートエクスポート出来るようにしたいと考えています。以下テーブル構成例です。
positionテーブル、permissionテーブルはユーザー毎に動的にレコード数が変わるため、
一列にしようとするとcsvのフィールド数が固定できません。
上記のようなテーブル構成をcsv形式でインポート、エクスポートしたい場合どのような構成が考えられるでしょうか。
今回の場合、実際にユーザー側でエクスポートされたcsvファイルをいじってインポートするので、
csvの構成も編集し易いようなものが求められています。
以下自分で考えてみた案(実際のテーブルよりフィールドを端折っています)
####1.重複しているデータも全て出力する
|ユーザーコード|ユーザー名|年齢|権限名|読込|書込|削除|役職|役職開始|役職終了|
|:--|:--|
|001|山田太郎|20|報告書|1|1|0|課長|2018-11-01|2018-12-01|
|001|山田太郎|20|アドレス帳|1|0|0|課長|2018-11-01|2018-12-01|
|001|山田太郎|20|報告書|1|1|0|システムエンジニア|2018-11-01|2018-12-01|
重複しているデータは上書きしていくイメージ。
さすがにこれはないかなと思っています。
####2.重複しているデータは空白全て出力する
|ユーザーコード|ユーザー名|年齢|権限名|読込|書込|削除|役職|役職開始|役職終了|
|:--|:--|
|001|山田太郎|20||||||||
||||報告書|1|1|0||||
||||アドレス帳|1|0|0||||
||||||||システムエンジニア|2018-11-01|2018-12-01|
||||||||課長|2018-11-01|2018-12-01|
1番とあまり変わらないですが、各テーブル毎に必要な項目だけ表示させ、ユーザーコードが入力されていない場合は最後に入力されているコードを対象にする。
####3.フィールドの先頭に変更したい項目名を記載させるようにさせる
|対象|ユーザーコード||||||||||
|:--|:--|
|基本|001|山田太郎|20||||||||
|権限|001|アドレス帳|1|0|0||||||
|役職|001|システムエンジニア|2018-11-01|2018-12-01|||||||
エンティティアトリビュートバリュー的な構成
一番右で対象テーブルを指定して、それ以降に必要なデータ。
対象毎に取り込む項目数が変わる。
対象毎に何番目の項目に何の値を入れる必要があるのか分からない。
####4.複数ファイルに分けてzipする
いちいちzip化するのが面倒。
ファイルが分かれていると管理しづらい。
どちらにしろすっきりとした構成は難しいのではないかと思っています。
皆様がこのような場合どういった作り方をされるかアドバイス等いただきたいです。
よろしくお願いいたします。
回答3件
あなたの回答
tips
プレビュー
バッドをするには、ログインかつ
こちらの条件を満たす必要があります。
2018/12/07 06:08