내가 지금 여기, 데이터베이스에는 전문가와 레일에서 초보자는 아니지만 내가 샘플로 세 개의 클래스를 가정하면 좀 나를 혼란 뭔가 ...데이터베이스 중첩 모델 레이아웃 혼란
간다 (노력이없는 점에 유의 이 샘플에서 Rails 예약어 문제를 해결할 수 있도록 만들어졌습니다.)
class File < ActiveRecord::Base
has_many :records, :dependent => :destroy
accepts_nested_attributes_for :records, :allow_destroy => true
end
class Record < ActiveRecord::Base
belongs_to :file
has_many :users, :dependent => :destroy
accepts_nested_attributes_for :users, :allow_destroy => true
end
class User < ActiveRecord::Base
belongs_to :record
end
레코드를 입력하면 데이터베이스 내용이 그대로 표시됩니다. 내 문제는 동일한 레코드에 대해 많은 파일이있는 경우 중복되는 레코드 이름이 있다는 것입니다. 사용자 테이블에 동일한 사용자에 대한 레코드가 여러 개있을 경우에도 마찬가지입니다.
하나 이상의 파일이 하나의 레코드 항목을 가리키고 하나 이상의 레코드가 단일 사용자를 가리 키도록 이보다 더 좋은 방법이 있는지 궁금합니다. BTW, 파일 이름은 고유합니다.
파일 테이블 :
id name
1 name1
2 name2
3 name3
4 name4
기록 테이블 :
id file_id record_name record_type
1 1 ForDaisy1 ...
2 2 ForDonald1 ...
3 3 ForDonald2 ...
4 4 ForDaisy1 ...
사용자 테이블 :
id record_id username
1 1 Daisy
2 2 Donald
3 3 Donald
4 4 Daisy
이 항목의 중복을 방지하기 위해 데이터베이스를 최적화 할 수있는 방법이 있나요, 또는 정말로 정확하고 적절한 행동이어야합니다. 나는 미래에 새로운 컬럼을 쉽게 추가 할 수 있도록 데이터베이스를 여러 테이블에 분산시켰다.