sql >> データベース >  >> RDS >> PostgreSQL

配列をフィールド値として保存したり、配列値をレコードとして保存したりするのは良い考えですか?

    データベースの正規化 について読む必要があると思います 自分で決めてください。要するに、あなたの提案には多くの問題がありますが、あなたはそれらと一緒に暮らせると決めるかもしれません。

    最も明白なものは次のとおりです。

    1. 行(1)にタグが追加された場合はどうなりますか?最初に解析し、すでに存在するかどうかを確認してから、行をtags.append(newTag)に更新する必要がありますか? 。
    2. さらに悪いのはタグを削除することですか?タグを検索し、存在し、タグを再作成します。
    3. タグが名前を変更する場合はどうなりますか?おそらく、何らかのモデレートプロセスですか?
    4. さらに悪いことに、タグ名を別の方法で指定するさまざまな人々はどうでしょうか。合理化するのは難しいでしょう。
    5. タグに基づいてデータをクエリする場合はどうなりますか?クエリは必要以上に複雑になります。
    6. プレゼンテーション:クライアントは、タグを使用するためにタグを解析する必要があります。セパレータフィールドはどうですか?それを変更すると、すべてのクライアントを変更する必要があります。

    要するに、これらの操作はすべて、より困難で面倒になります。正規化は、このような問題を克服するように設計されています。おそらく、IMOというあなたの言うことを行う唯一の理由は、データを1回限りとしてキャプチャしていることであり、それは情報提供のみです。つまり、ユーザーには意味がありますが、システム自体には意味がありません。これは、おそらく回避するのが最善だと言っているようなものです(繰り返しますが、IMO)。



    1. 初心者向けのSQLMIN()

    2. データベースメール(SSMS)のデフォルトのパブリックプロファイルを設定する

    3. 一重引用符で囲まれたデータの挿入中にエラーが発生しました

    4. Mysqlのリードおよびラグ関数