2012-10-22 33 views
0

首先,我不太瞭解sql只有基本的東西。我需要關於如何實現一個程序的幫助。我創建了兩個表格:司機和汽車。 IDDriver IDCar 我需要幫助有關如何實現這樣的場景:兩班倒一天,但只有一個司機和一輛出租車的那個轉變

我需要爲創建存儲過程:創建,更新和一個班次的刪除。 有一天必須兩班倒:一班車換兩班,但只有一班換班。

任何幫助?

+3

你需要告訴我們你到目前爲止所嘗試過的。 –

+1

您還需要擴展數據模型以包含班次。 –

回答

0

我想你想這樣

CREATE TABLE [Driver] 
(
     [Id] INT IDENTITY(1,1) PRIMARY KEY 
    , [Name] NVARCHAR(50) NOT NULL 
) 

CREATE TABLE [Car] 
(
     [Id] INT IDENTITY(1,1) PRIMARY KEY 
    , [Registration] NVARCHAR(14) NOT NULL 
) 

CREATE TABLE [ShiftType] 
(
     [Id] INT IDENTITY(1,1) PRIMARY KEY 
    , [StartTime] TIME NOT NULL 
    , [StartDayOfWeek] TINYINT NOT NULL 
    , [EndTime] TIME NOT NULL 
    , [EndDayOfWeek] TINYINT NOT NULL 
) 

CREATE TABLE [Shift] 
(
     [Id] INT IDENTITY(1,1) PRIMARY KEY 
    , [DriverId] INT NOT NULL REFERENCES [Driver]([Id]) 
    , [CarId] INT NOT NULL REFERENCES [Car]([Id]) 
    , [ShiftId] INT NOT NULL REFERENCES [Shift]([Id]) 
) 

架構的財產以後您可以插入一些基本的數據這樣

INSERT [Driver] VALUES ('Bob') 
INSERT [Car] VALUES ('ABC1234') 
INSERT [ShiftType] VALUES ('08:00:00', 0, '20:00:00', 0) 
INSERT [ShiftType] VALUES ('20:00:00', 0, '08:00:00', 1) 
INSERT [Shift] VALUES (1, 1, 1) 
INSERT [Shift] VALUES (1, 1, 2) 

,並把它弄出來這樣

SELECT 
       [D].* 
      , [C].* 
      , [ST].* 
    FROM 
      [Shift] [S] 
     JOIN 
      [Driver] [D] 
       ON [D].[Id] = [S].[DriverId] 
     JOIN 
      [Car] [C] 
       ON [C].[Id] = [S].[CarId] 
     JOIN 
      [ShiftType] [ST] 
       ON [ST].[Id] = [S].[ShiftTypeId] 

Here it is on fiddle


這應該給你一個很好的起點,讓你自己去找一些存儲過程,併發佈一個結構良好的問題。

相關問題