私はLongs
(Timestamps
実際には)のセットを持っています。どうやら、範囲に適合しないIntegers
ため、データを失うことなくキャストすることはできません。これらに基づいてタイプの主キーを生成する必要があります。これを行う方法はありますか?timestamp
Integer
Integer
Longs
質問する
92 次
3 に答える
2
Long
sよりもsが多いためInteger
、これを行うための安全な方法はありません。これは、Long
sのすべてのセットで機能します。
ただし、Long
sがそれほど離れていない場合は、最初のタイムスタンプを0として使用し、その差を使用して、Integer
後続のタイムスタンプごとに一意のタイムスタンプを取得できる場合があります。
于 2013-01-04T08:31:36.210 に答える
1
方法はたくさんありますが、タイムスタンプに基づく主キーが良い考えだと本当に思いますか? 同じタイムスタンプを持つ複数のエントリを持つことはそれほど難しくないため、本当に良いキーにはなりません。
とにかく、Java を使用しているので、タイムスタンプはミリ秒単位であると思います。秒に切り捨てるのはまったく悪い考えなので (同じ秒で他のエントリと衝突するのは非常に簡単です)、おそらく良い考えはタイムスタンプを「シフト」することです: タイムスタンプから最小の日付を選択し、そのタイムスタンプをゼロにし、その他はそれ:この場合、おそらく整数に収まります。
于 2013-01-04T08:32:41.130 に答える
1
作成される日付タイムスタンプの範囲が制限されているとします。2004 年 12 月 12 日以降の日付としましょう。最上位桁を切り捨てる合理的なアプローチのようです。
long 00001357288262
int 1357288262
于 2013-01-04T08:33:22.813 に答える