私は会社を持ち、各社には複数の製品があります。モデルは以下のいるrelation-MySQL - 各親オブジェクトの子オブジェクトのIDの範囲を予約します
クラスの会社<はActiveRecord ::ベース にhas_many:製品 エンド クラスの製品<はActiveRecord ::ベース belongs_toの:会社
が、私は、各会社のために1000個のIDを予約したい 終了。
ので
- Company1のは、私はそれぞれの製品のテーブルの主キーを予約したい
- Company2のは、1001年から2000年
から製品IDを持つことができ1-1000から製品IDを持つことができます(消費者/企業は製品IDを覚えてURL '.../product/1000'を使用してアクセスできるので)主キーと重複IDのスコープを持つのではなく、
解決策私は心に留めています。 複数のシーケンスを作成する必要があります(会社の作成時および作成時に、それぞれの会社に1つずつ)。デフォルト値は(Company.ID -1)* 1000 + 1です。 会社1の製品が作成されたときにこのシーケンスにnextvalを使用します。
あなたはより良いアプローチを提案できますか?
なぜそれをしたいですか?ちょうど普通のことをするhas_many <->は団体に属します –
has_manyが既にあり、関連に属しています。企業が製品にアクセスすることは容易になります。アプリケーションのどこにでも製品IDが表示されます(名前はありません)。 –