SQL Serverで保持する既定値の設定について、ご教示いただきたいです。
・聞きたい事(質問の概要)
DBで保持するデータの既定値は、クライアント・サーバー再度どちらで実装すべきなのか。
例) レコードの作成日時
[設定方法について]
①クライアント(C#)で設定
C# DateTime.Now → SQL ServerにInsert
②SQL Serverで設定
規定値に「getdate()」を指定
・目的(それを聞いてあなたは何をしたのか)
最適な設計方法について、学習したい。
おそらく正解はないと思うのですが、、、
皆さんがどのように実装をしているのか、参考にさせていただきたいです。
よろしくお願いいたします。
確かに正解はないような。
どちらでもよさそう。
ただ、そのシステム全体で、①で実装するのか②にするのかは、決めたほうがよいと思います。
私が見てきたシステムは、①でした。
多分、DB側はテーブル定義だけにしておくことで、トラブル対応時、コードだけ追えば済むから、カナ。
ただ、例の「レコードの作成日時」って、全テーブルにあるのですよね?そうすると、②にする方がコードを書く量が減っていいかもしれませんね。
今やってるシステムだと②で統一してますね。
接続先のデータがガバガバなせいでデータ型をvarchar,varbinaryの二種しか使ってないという特殊事情があるせいかもしれませんが🤪
ちなみにデフォ値はnullじゃなくて””です😤
そのクライアントが複数のパソコンにインストールされること想定しているならば正解は②です。