2010-07-14 2 views
0

관계형 데이터베이스에서 이러한 유형의 데이터를 가장 잘 표현하려면 어떻게해야합니까?이 데이터의 일반적인 디자인

  1. 제조업체마다 고유 한 일련 번호가있는 특정 기계가 있습니다.

  2. 각 시스템은이 유형의 시스템에서 수행 할 수있는 다양한 작업을 수행하도록 사용자가 설정합니다.

  3. 모든 기계는 그 자체가 마지막으로 각 작업은 하나의 시스템에서 다른 다릅니다 시간 설정을해야합니다

  4. 시간

    을 통해 을 변경할 수 있습니다 동일한 작업 목록에서 선택합니다.

최종 조건은이를 정규화하려는 시도를 엉망으로 만든 것처럼 보입니다.

+0

기계 유형이 하나 뿐이며 여러 가지가 있습니까? 여러 대의 컴퓨터 유형이있는 경우 몇 가지 작업을 공유합니까? –

+0

하나의 기계 유형 만 가능하지만 일부는 더 높은 스펙을 가지고 있지만 일부 고급 스펙은 때때로 가능한 태스크의 서브 세트를 수행하도록 설정됩니다. – bosco

+0

그래서 여러 기계가 모두 동일한 유형입니다. 한 세트의 작업 만이 모든 작업의 ​​하위 집합을 수행 할 수 있습니다. 각 기계에 대해 기계가 이론적으로 수행 할 수있는 작업의 서브 세트가 실제로 스케줄됩니다. 옳은? –

답변

2

기계 :: Id, 일련 번호

ID는 기본 키입니다.

작업 :: ID, 설명

ID가 기본 키입니다.

MachineTasks는 TASKID

MachineId 및 TASKID 복합 기본 키 :: MachineId이다. MachineId는 Machines.Id를 참조하는 외래 키입니다. TaskId는 Tasks.Id를 참조하는 외래 키입니다.

ScheduledMachineTasks는 :: MachineId, TASKID, 시간

MachineId 및 TASKID 복합 기본 키이다. MachineId 및 TaskId는 MachineTasks.MachineId 및 MachineTasks.TaskId를 참조하는 복합 외래 키입니다.

각 작업을 컴퓨터마다 한 번만 예약 할 수 있으며 한 작업이 컴퓨터마다 여러 번 예약 될 수있는 경우 추가 확장이 필요합니다.

+0

Durilai와 귀하 모두 매우 비슷한 답변을 주셨지만 많은 설명 정보를 제공해 주셨 기 때문에 받아 들인 대답으로 선택하겠습니다. 시간과 지식에 감사드립니다. – bosco

1

각 개체를 서로 관련시키는 보완적인 데이터를 사용하여 공통 테이블을 만듭니다.

기계 TABLE
ID,

TASK 표
ID, 작업 MachineID

MACHINETASK 표
ID, MachineID (MACHINE.ID에 FK) TaskID를 (FK to TASK.ID), 시간

+0

고마워요,이게 재미있어 보이네 – bosco

+0

유일한 질문은 시간 필드입니다. 사용자, 참조 테이블 등에서 입력합니까? –

+0

사용자가 입력하고자하는 제품의 품질에 따라 달라집니다. – bosco

관련 문제