1
1

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?

More than 5 years have passed since last update.

ロストテクノロジーの再活用 採番テーブル

Posted at

SQLServerやPostgreSQLを使うことしかなくなって
(なぜか僕の案件ではMySQLの遭遇が少ない)、
AutoIncrementやらSerialをユニークキーにする設計が当たり前になっていて
RealmでSerial使えないことがちょっと不便に感じていた。

純粋に個人のデータとして設計する場合わざわざSerialのような値を持つ必要がなかったりするので、設計上Serialの必要性を排除できることが多いんだけど、それでもあると便利な時がある。
これを解決する方法の一つとして考えられるのが、
1997年くらいのときまで僕が先輩のテーブル設計でよく見かけていた

採番テーブル

構造は簡単で

列名
シーケンスのオブジェクト名に当たるユニークな名称 String
現在のシーケンス値 Integer

というシンプルな構造で、このデータにアクセスすることで擬似的にシーケンスを作り出していた。
みただけで「あ。。。(察し)」なんだけど、ポイントがあるとすると
同一更新を排除するためにレコードロックをかけて更新すること。
くらいか。昔のクラサバとかだと、同時更新されることもあるからね。

どこかで誰かの役に立つことがあれば。

1
1
0

Register as a new user and use Qiita more conveniently

  1. You get articles that match your needs
  2. You can efficiently read back useful information
  3. You can use dark theme
What you can do with signing up
1
1

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?