2017-11-17 29 views
0

SQL Serverで一連のテーブルを作成する必要があります。Sql Server:複数の外部キーを持つテーブルを作成する

ものです:お客様は予約後に予約の詳細を保存市、バス運賃など(管理者によって追加)
BookingDetails:旅行名程度

BusCity:旅行の都市
BusType: AC /非AC
BusInformation:情報、旅。
BookedStatus:バスが利用可能です。

これらのテーブルを作成する際に問題があります。続き

は私のDDLコードです:

Create Table Customer 
( 
CustomerId int primary key identity(100,1), 
CustomerName varchar(100) not null, 
CustomerEmail varchar(100) not null, 
CustomerPassword varchar(50) not null, 
CustomerPhone int not null, 
) 

Create Table BusCity 
( 
BusCityId varchar(10) primary key, 
BusCityName varchar(100) not null unique 
) 

Create Table BusType 
( 
BusTypeId int identity(10,1) primary key, 
BusTypes varchar(100) not null unique 
) 

Create Table BusInformation 
( 
BusInformationId varchar(10) primary key, 
BusName varchar(100) not null unique, 
BusNumOfSeats int not null, 
BusFromCity varchar(10) not null, 
BusToCity varchar(10) not null, 
BusTravelPrice int not null, 
BusTypeId int, 
constraint Fk_BusInfo_BusType Foreign key(BusTypeId) references BusType(BusTypeId), 
constraint Fk_BusInfo_BusFromCity Foreign key(BusFromCity) references BusCity(BusCityId), 
constraint Fk_BusInfo_BusToCity Foreign key(BusToCity) references BusCity(BusCityId) 
) 

Create Table BookingDetails 
( 
BookingDetailsId int identity(2000,1) primary key, 
CustomerId int, 
BusInformationId varchar(10), 
BookingDateofTravel Date, 
BookingFromCity varchar(10) not null, 
BookingToCity varchar(10) not null, 
BookingNumOfSeats int not null, 
BookingTravelPrice int not null, 
constraint Fk_BookingDetails_BusInformation Foreign key(BusInformationId)references BusInformation(BusInformationId), 
constraint Fk_BookingDetails_Customer Foreign key(CustomerId)references Customer(CustomerId), 
constraint Fk_BusDetails_BusFromCity Foreign key(BookingFromCity) references BusCity(BusCityId), 
constraint Fk_BusDetails_BusToCity Foreign key(BookingToCity) references BusCity(BusCityId) 
) 

Create Table BookedStatus 
( 
BookedStatusId int identity(3000,1) primary key, 
AvailableSeats int not null, 
BookedDate Date, 
IsAvailable bit, 
BusInformationId varchar(10), 
constraint Fk_BookedStatus_BusInfo Foreign key(BusInformationId)references BusInformation(BusInformationId) 
) 

私の問題は、私がきちんとテーブル間のテーブルの関係をマッピングし
1.whetherです。
テーブル内に複数の外部キー列が含まれています(BusInformation、BookingDetails)。

同じように私を助けてください。

オンラインバスチケット予約

このプロジェクトは、2つのユーザーの役割を持っている - 最初は管理者であり、第二のお客様です。このプロジェクトでは、顧客は旅行チケットをオンラインで予約することができます。

ウェブサイトの

管理者ユーザーは、(都市の詳細を都市ごとのバス情報/バスチケット価格)都市情報、バス情報、(市から市への)バス路線、バスの詳細を追加することができます管理者、ノーのバス当たりの座席、予約日にバスごとに利用可能な座席、バス利用可能および予約済み状況。

お客様からと一方向または返すと価格によると旅の日/市内旅行/バス名でチケットを予約するために利用できるバスを検索することができ

お客様。

  • すべての利用可能なバス とバスの詳細が一覧表示されます検索機能が必要です。

  • ユーザーはログインする必要はありません。 ユーザーは、利用可能なバスとそのルートを検索して確認できます。

  • 予約するには、お客様がログインする必要があります。お客様は チケットを予約するWebアプリケーションに登録することができます。顧客がログインした後

  • は、彼または彼女は、彼らが必要とする座席、旅行の日付の番号を入力 ことでバスのチケットを予約し、市
    からと市にすることができます。

  • 今のところ支払いの詳細は必要ありません。

  • お客様は、チケットを登録して予約することができます。管理者は予約済みのすべての 情報を表示できます。

答えて

0

私はあなたが1)が答えるために十分な情報を与えてくれたかわからない - 私たちはすべての可能な関係についてコメントすることを与えられた文からのデータとの間の相互依存関係について十分に知らない

列が作成テーブルに指定されている場合

外部キーを作成することができます。

CREATE TABLE BusBlah (
    BusID int PRIMARY KEY, 
    StatusID int not null REFERENCES StatusesTable(StatusIDColumnInStatusesTable) 
    ... 
) 

それとも、彼らはALTERを後に添加することができる(これは、SQL Management Studioのはそれをしない方法です)

ALTER TABLE BusBlah 
ADD CONSTRAINT SomeConstraintName FOREIGN KEY (StatusID) 
REFERENCES StatusesTable (StatusIDColumnToReference) ; 

最終的に、完全なスクリプトセットが必要な場合は、SQLServer管理スタジオの関係を含めて視覚的にテーブルを設計し、スクリプトを作成して結果を確認するよう依頼することができます。クエリが学術的な行為に関連している場合は、SSMSが作成したスクリプトを手入力しないでください。マシンが準備されていることは明らかですが、ベースとして使用して、実行していることを確認できます

これは学問的な練習ではないが、私は一般的に、SSMSでこれらのものを視覚的に設計する方が優れていると考えています。上記のようにスクリプトを記述することができます。データベースの移行やプログラムから新しいデータベースを作成する場合は、

+0

となります。私はそれがあなたに同じことについて十分な明快さを与えることを願っています。 – Krish

+0

Hmm。あなたの宿題をチェック/するように頼んでいるような気がしますか?あなたが追加した情報をどれだけ理解してもらいたいのですか? –

+0

、ただ質問するだけで、私は情報をデザインに変換しましたか?特に、テーブル(予約詳細、BookedStatus)は正しく構築され、マッピングされます。参考:私はここで宿題をすることを誰にも求めていない、Just Peer Review。 – Krish

関連する問題