私はかつて彼と同じチームにいたので、彼の「中世嫌悪的」なアプローチについてはよく知っており、彼の意見の多くに強く同意しますが、よく理解できない点が 1 つあります。私は常に日付/時刻型の使用を避けます。彼が行ったのは、時間関連のフィールドを INT(10) タイプに設定し、UNIX タイムスタンプを使用してそれらを格納することでした。私は個人的にこのアプローチに強く反対します:
まず第一に、それは型演算の違いです。wiLdGoose のアプローチと同様の「時間計算」は、本質的には整数間の演算です (そして、この整数は長さが 10 と非常に大きいです)。 )。さらに、タイムスタンプを VARCHAR(10) に設定すると、明らかな効率性の問題が発生します。
時間計算、整数計算、さらには文字列計算の効率については、この記事が非常に具体的です。
第二に、ロジックの運用上の問題があります。これは、特に高精度が必要なプロジェクトで時間タイプを使用する利点です。たとえば、「前の週のデータ」が必要で、「データベースが作成されてから毎週月曜日のデータを取得」する必要がある場合、wiLdGoose 兄弟のメソッドを使用すると、そのような操作の複雑さが想像できるでしょう。
最後に、直感的ではない問題があります。これは、私たちの脳がこの大量のタイムスタンプを直接日付形式に変換しないことは理解できます。それに比べて、時間タイプを直接使用する方が明らかに直感的です (それ自体が時間形式です)。
そして、私の現在のチームはまだ同様の方法を使用しています。私も同様の技術的な内容について長らく議論してきましたが、立場や決定権の問題から未だにチームに私の意見が採用されず、残念です。
MySQL はシンプルで高速な DBM として位置づけられており、当然すぐに制御できるのですが、その一方で、それ以上に進まない状況も作りやすいのです。そのためには、各項目のデータベース設計の詳細に注意を払う必要があります。新しい機能を継続的に追加する製品は、最終的にはアプリケーション指向です。
最後に、MySQL の時刻と日付関数の公式マニュアルを紹介します。