ユーザー定義のSQLデータ型はあまり使用されていますか? [閉まっている]
-
20-09-2019 - |
質問
私のDBAは、アドレスを表すために、ユーザー定義のSQLデータ型を使用して、ユーザーの皆様のテーブルの代わりに、複数のアドレス欄に、新しいタイプの単一の列を使用するように私に言いました。私は前にこれをやったことがないと、これは一般的なアプローチである場合は疑問に思ってます。
また、これについての情報を取得するための最良の場所は何? - それは製品固有です。
解決
ユーザー定義型を定義することは非常に製品固有のものです。あなたはInformixの中でそれを行う方法は、たとえば、それはDB2とOracleで行われている方法とは異なります。
他のヒント
私が知る限り、少なくともSQL Serverの世界では、UDTはあまり使用されません。
UDTとのトラブルは、あなたが簡単にそれらを更新することはできません事実です。一度作成され、データベースで使用され、彼らはほとんどの石でセットのようにしています。
だから、何かを変更する:-(ない「作成または変更(UDT)」コマンドはありません、あなたの周りシャッフルの多くをしなければならない - おそらく既存のデータを離れてコピーし、その後、他のテーブルから列の多くを落とし、その後、あなたを落としますUDTは、新しい構造とそれを再作成し、データ、すべてを再適用ます。
を変更しますがある:あなたが知っている -それはあまりにも多くの面倒です!
は、今のところ、SQL Serverの土地に、UDTはちょうどいいアイデアです - が、本当にひどい実装します。私は広範囲にそれらを使用することをお勧めしません。
マルク
また、私はむしろ、自分のdefinationとユーザビリティとユーザ定義データ型を使用して回避する特定のデータベースにあなたのコードが依存して行います。
代わりに、任意のオブジェクト指向プログラミング言語を用いて、(例えば)従業員のアドレスを定義し、別のテーブル内のアドレスを格納するための組成物関係を作成する場合。
例:。従業員テーブルとEmployee_Addressesテーブル。一つの従業員が複数のアドレスを持つことができます。
ユーザ定義のSQLデータ型は、アドレスを表すために
ユーザー定義型は非常に役立つことができますが、メールアドレスは、(少なくとも、私には)これらの例として飛び出すことはありません。あなたにメールアドレスとは何ですか?それはあなたが誰かを郵送する封筒に印刷する何かですか?その場合は、テキストはそれを得るために起こっているのと同じくらい良いです。誰かが、法律上の理由で個別に、それは問題ではない店が何であるかの状態を知る必要があります。
ここで他の記事は、UDTが批判しているが、私は、彼らはいくつかの素晴らしい用途を持っていると思います。フルテキスト検索が実際にコア製品に統合されました前に、PostgreSQLは長い時間のためのUDTに基づいてプラグインとして全文検索がありました。今PostGISには、(それがGPLライセンスを持っているので、コアに統合されることはありません)完全のUDTに基づいたプラグインです非常に成功したGIS製品です。