创建这些表的正确方法是什么?

时间:2020-04-27 20:52:48

标签: sql-server

我正在反向工程一个脚本,该脚本从我的教科书创建工资数据库。我正在将其重建为图书馆管理系统。首先,我绘制了表格/列及其关系here的图表。现在,按照课本中的脚本,我使用作者技术创建除 BooksIssued 表和 InvoiceItems 表之外的所有表。这是我的代码

USE master
GO

/******Check to see if database exists******/
IF DB_ID('SET2133810') IS NOT NULL
    DROP DATABASE SET2133810
GO

/******Object: Database SET2133810******/
CREATE DATABASE SET2133810
GO

USE SET2133810
GO

/******Object: table*****/
CREATE TABLE VendorsList(
    VendorID int IDENTITY(1,1) NOT NULL,
    VendorName varchar(50) NOT NULL,
    VendorPhone varchar(50) NULL,
    VendorContactLName varchar(50) NULL,
    VendorContactFName varchar(50) NULL,
    VendorAddress varchar(50) NULL,
    VendorCity varchar(50) NOT NULL,
    VendorState char(2) NOT NULL,
    VendorZipCode varchar(20) NOT NULL,
 CONSTRAINT PK_VendorsList PRIMARY KEY CLUSTERED (
    VendorID ASC
 )
)
GO

/******Object: Table*****/
CREATE TABLE InvoicesList(
    InvoiceID int IDENTITY(1,1) NOT NULL,
    VendorID int NOT NULL,
    InvoiceNumber varchar(50) NOT NULL,
    InvoiceDate smalldatetime NOT NULL,
    InvoiceTotal money NOT NULL,
    PaymentTotal money NOT NULL,
    PaymentDate smalldatetime NULL,
 CONSTRAINT PK_InvoicesList PRIMARY KEY CLUSTERED(
    InvoiceID ASC
 )
)
GO

/******Object: Table*****/
CREATE TABLE BookList(
    BookID int IDENTITY(1,1) NOT NULL,
    BookISBN varchar(50) NOT NULL,
    BookTitle varchar(50) NOT NULL,
    BookAuthor varchar(50) NOT NULL,
    BookPublisher varchar(50) NOT NULL,
    BookGenre varchar(50) NULL
 CONSTRAINT PK_BookList PRIMARY KEY CLUSTERED(
    BookID ASC
 )
)
GO

/******Object: Table*****/
CREATE TABLE MembersList(
    MemberID int IDENTITY(1,1) NOT NULL,
    MemberLName varchar(50) NOT NULL,
    MemberFName varchar(50) NOT NULL,
    MemberAddress varchar(50) NULL,
    MemberCity varchar(50) NOT NULL,
    MemberState char(2) NOT NULL,
    MemberZipCode varchar(20) NOT NULL,
    MemberPhone varchar(50) NOT NULL,
    MemberEmail varchar(50) NOT NULL,
 CONSTRAINT PK_MembersList PRIMARY KEY CLUSTERED(
    MemberID ASC
 )
)
GO

我对如何以相同的方式创建这些表感到困惑?由于它们都依赖于其他表和已经存在于其中的信息。我环顾四周,发现了 Join 语句,但没有一个以对我有帮助的方式使用。

1 个答案:

答案 0 :(得分:0)

以下应该是创建表的顺序。

  1. BookList
  2. MemeberList
  3. 已发行的书
  4. VendorList
  5. 发票清单
  6. InvoiceItems

应在最后创建发票清单,因为它具有对供应商和发票项目的引用,并且应该在MemberList和Book List之后创建BookIssues