Sid is a project mainly written in Ruby, based on the MIT license.
Have a separate, relative id column in your table
Useful for multi-tenant apps where the data lives on the same database, but you want the elements of a tenant to associate with each other via relative ids, not the absolute database id. This is also known as the scoped id (sid).
I wanted elements of a certain account to connect to one another via relative ids, not absolute. Why? Because if I wanted to just dump the data of that account, and load it back later, I didn't want to worry about the ids changing. The relations would stay intact.
Add a sid
integer column to the tables you want to have this. These tables should belong_to
the thing you want to scope by. It's typically the account_id
. Don't forget to add an index too!
In the models, add:
class Page < ActiveRecord::Base
has_sid :account_id
# has_sid, :account_id, :sid_column => :some_other_column # you can specify what column it will consider the sid column. Defaults to `sid`
end
Copyright (c) 2011 Ramon Tayag. See LICENSE.txt for further details.