2012-02-29 17 views
0

異なるデータ型のデータを1つの汎用データ型、たとえばSQLの 'image'として保存することはできますか?また、別の列にデータ型の値を格納し、コード内でこの値を使用して、データを適切な型に変換し直します。 これを行うことで得られる利点 - n個のテーブルを結合することを避けることができます。 このようにしてデータを格納するのが面倒なことを指摘できる人がいますか?すべてのタイプの値をsqlのイメージデータ型として保存してもよろしいですか?

+1

代わりに、参加の使い方を習得してください。 –

+0

あなたはトロールですか? – Mau

答えて

2

これは、いくつかの理由からかなり悪い考えです:オプティマイザは、インデックス、外部キーなどを利用することができないので、彼らが存在しないため、

  • クエリのパフォーマンスが悪くなります。
  • 参照整合性が得られていないため、データに関する前提はありません。
  • データが指定されたデータ型に対応していない場合はどうなりますか?
  • あなたがあなたを憎んだ後にコードを維持する必要がある人。
+0

私は最後の点が好きです。 –

1

あなたが注意として、私は常に、入力と出力に型キャストも、あなたは、少なくとも2つの理由

  1. のためにあなたをこのアプローチを取ることでしょう無分別ことだと思います。私はこれを時間のかかるものとして見ることができますが、これを有用な操作として見ることはできません。
  2. あなたは、すべてのマザー・オブ・オール・テーブルでNジョインを作成する(さほど控えめな)難しさのためにNテーブルを結合するのが難しいです。

そして、マルチツール(SQL)をハンマーのように使うことを提案している行には、より哲学的な議論があります。すべてのデータ型が常に爪であるわけではありません。あなたはより生産的になるでしょう。あなたのツールの性質に反して作業するのであれば、私はあなたの仕事をもっと楽しんでいると主張します。

ダニエル・ヒルガルトがすでに書いていることに同意します。

+0

私は、型の入力と出力のコードでは、結合よりも時間がかかります。そうそうではないように見えます。 – user811433

+1

結合に時間がかかる場合は、データベースに問題がある可能性があります。外部キーに索引がないか、データ型が一致せず、暗黙の変換が発生する可能性があります。あなたの問合せの説明計画をチェックして、時間がかかることを知ることができます。 –

関連する問題