Database schema to store AND, OR relation, association
- by user455387
Many thanks for your help on this.
In order for an entreprise to get a call for tender it must meet certain requirements.
For the first example the enterprise must have a minimal class 4, and have qualification 2 in sector 5.
Minimal class is always one number.
Qualification can be anything (single, or multiple using AND, OR logical operators)
I have created tables in order to map each number to it's given name.
Now I need to store requirements in the database.
minimal class 4
Sector Qualification 5.2
minimal class 2
Sector Qualifications 3.9 and 3.10
minimal class 3
Sector Qualifications 6.1 or 6.3
minimal class 1
Sector Qualifications (3.1 and 3.2) or 5.6
class Domain < ActiveRecord::Base
has_many :domain_classes
has_many :domain_sectors
has_many :sector_qualifications, :through => :domain_sectors
end
class DomainClass < ActiveRecord::Base
belongs_to :domain
end
class DomainSector < ActiveRecord::Base
belongs_to :domain
has_many :sector_qualifications
end
class SectorQualification < ActiveRecord::Base
belongs_to :domain_sector
end
create_table "domains", :force => true do |t|
t.string "name"
end
create_table "domain_classes", :force => true do |t|
t.integer "number"
t.integer "domain_id"
end
create_table "domain_sectors", :force => true do |t|
t.string "name"
t.integer "number"
t.integer "domain_id"
end
create_table "sector_qualifications", :force => true do |t|
t.string "name"
t.integer "number"
t.integer "domain_sector_id"
end