내 제품 테이블에는 원자재, 하위 어셈블리, 어셈블리 등이 포함되어 있습니다. 이들은 모두 고유 한 productid가있는 "제품"이라고합니다. BOM은 하위 어셈블리를 만들기 위해 병합되는 재료로 구성되어 있기 때문에 BOM에 적합하지 않다고 생각합니다.다 대다 안의 한 테이블
즉, 하나의 원료 배치를 많은 하위 어셈블리에서 사용할 수 있습니다. 하위 어셈블리는 여러 원료 배치를 가질 수 있습니다. 이 새 하위 어셈블리는 여러 어셈블리에서 사용할 수 있으며 그 반대의 경우도 마찬가지입니다. 이것은 다 - 대 - 다 관계이지만, 무한 레벨에서 두 개의 테이블을 결합하면 작동하지 않습니다 (이 두 레벨 만 있으면 재료, 어셈블리 테이블과 같은).
많은 부모, 동일한 테이블 안에 많은 자식이 있으며, hirearchical 모델은 정상적인 hirearchy를 처리하는 것 같습니다.
id 테이블 및 id_Child 키를 모두 사용하여 products 테이블의 동일한 식별자에 "family"테이블을 만들 수 있습니까? 이 방법으로 여러 자녀의 경우 하나의 부모를, 여러 부모의 경우 하나의 자녀를 반복 할 수 있습니다.
다른 방법/더 좋은 방법이 있습니까?
필자는 나중에 구성 요소 테이블을 사용하여 시간과 수량을 추적하여 나중에보고 할 수있었습니다. 저는 SQL Server 2005를 사용하고 있습니다. 답장을 보내 주셔서 감사합니다. 데이터베이스에 대한 Celko의 책조차도 명확한 답변을 제공하지 않았으며, 모든 예는 일반적인 트리 다이어그램입니다. – BeachBoy
http://msdn.microsoft.com/en-us/library/ms186243(v=SQL.90).aspx – BeachBoy
그래도 구성 요소 테이블을 사용하면 조심해야합니다. 이 예에서 제품 및 구성 요소 테이블은 함께 키트/어셈블리를 작성하는 패턴을 제공합니다. 나중에보고하기 위해 BOM의 복사본 (또는 원하는 경우 "인스턴스")을 효과적으로 가져 와서 다른 곳에 저장해야합니다. 아마'Product'와'Component'는 어셈블리를위한 BOM을 기술 할 것이고,'ProductItem'과'ComponentItem'은 일단 어셈블리가 실행되면 실제 아이템을 나타내는 실제 어셈블 된 어셈블리를 기술 할 것입니다. –