【问题标题】:how to create this table in sql server?如何在 sql server 中创建这个表?
【发布时间】:2017-07-28 15:06:59
【问题描述】:

我喜欢很难为这个问题创建一个表。有人可以帮帮我吗?

您是已经为您创建的 Sweeney Tours 的一些表的所有者。他们是:

COUNTRY(country, language, timezone, currency)
REGION(region, landtype, country, scenery, page) 
RESORT(resort, region, transfertime, beach, beachnum, page)
HOTELS(hotelid, hotelname, sunbeam, ya, rating, stdbasis, page, resort,       
      resortloc, roomtotal) 
FACILITIES(facid, description, category)
FACINRESORT(resort, facid)
FACINHOTEL(hotelid, facid, numof) 

每家酒店都提供一种标准餐点 (stdbasis),始终是半食宿 (hb)、住宿加早餐 (bb)、全食宿 (fb) 或仅公寓 (ao) 中的一种。一些酒店被指定为“年轻而活跃”(意思是 18-30 岁的理想选择)(是的)。一些度假村通过经营“阳光俱乐部”(阳光)特别适合儿童,父母可以在那里离开他们的孩子。这些俱乐部与度假村中的特定酒店相关联。每家酒店距离度假村中心都有一段距离,包括 (resortloc)。包括从机场到度假村的接送时间(接送时间)。

度假村和/或酒店设有游泳池、迪斯科舞厅、骑马、服务员服务、儿童游乐场、卧室电话等设施。设施分为许多不同的类别:

(6?)

accommodation a 
entertainment e 
sport s 
meals m 
children c 
bedroom b 

【问题讨论】:

  • 试着分析一切,如果你不确定你应该做什么,看看一些教程。
  • 我试过了,但我真的觉得很难。我在哪里可以看到这样的教程? :(
  • 有些东西可以帮助你。 HERE.
  • 您的背景/情况如何?您是否正在学习/开始编程/只是为了好玩?
  • 正在学习,我是初学者,我们只讨论了基本的sql命令,所以我很难创建这样的表

标签: sql sql-server database-design


【解决方案1】:

也许这会对你有所帮助:

CREATE TABLE COUNTRY(
    country VARCHAR(255) PRIMARY KEY,
    language VARCHAR(255),
    timezone TIMESTAMP,
    currency FLOAT
)

CREATE TABLE REGION(
    region VARCHAR(255) PRIMARY KEY,
    landtype VARCHAR(255),
    country VARCHAR(255) FOREIGN KEY REFERENCES COUNTRY(country),
    scenery VARCHAR(255),
    page INTEGER UNIQUE, 
)

CREATE TABLE RESORT(
    resort VARCHAR(255) PRIMARY KEY,
    region VARCHAR(255) FOREIGN KEY REFERENCES REGION(region),
    transfertime TIMESTAMP,
    beach VARCHAR(255),
    beachnum VARCHAR(255),
    page INTEGER FOREIGN KEY REFERENCES REGION(page)
)

CREATE TABLE STDBASIS(
    id INTEGER AUTO_INCREMENT PRIMARY KEY,
    code VARCHAR(3),
    description VARCHAR(255) 
)

CREATE TABLE HOTELS(
    hotelid BIGINT AUTO_INCREMENT PRIMARY KEY,
    hotelname VARCHAR(255),
    sunbeam VARCHAR(255),
    ya VARCHAR(255),
    rating VARCHAR(255),
    stdbasis VARCHAR(255) FOREIGN KEY REFERENCES STDBASIS(id),
    page INTEGER FOREIGN KEY REFERENCES REGION(page), 
    resort VARCHAR(255) FOREIGN KEY REFERENCES REGION(resort),
    resortloc VARCHAR(255),
    roomtotal INTEGER,
    CONSTRAINT chk_stdbasis CHECK (stdbasis BETWEEN 0 AND 4)
)

CREATE TABLE FACILITIES(
    facid VARCHAR(255) PRIMARY KEY,
    description VARCHAR(255),
    category INTEGER
)

CREATE TABLE FACINRESORT(
    resort VARCHAR(255) FOREIGN KEY REFERENCES REGION(resort),
    facid VARCHAR(255) FOREIGN KEY REFERENCES FACILITIES(facid),
    CONSTRAINT pk_rID PRIMARY KEY (resort,facid)
)

CREATE TABLE FACINHOTEL(
    hotelid VARCHAR(255) FOREIGN KEY REFERENCES HOTELS(hotelid),
    facid VARCHAR(255) FOREIGN KEY REFERENCES FACILITIES(facid),
    numof INTEGER,
    CONSTRAINT pk_hID PRIMARY KEY (hotelid,facid)
)

请根据您的业务问题更改数据类型和主/外键

您需要在 STDBASIS 表中插入数据,如下所示:

INSERT INTO STDBASIS
(code, description) 
VALUES 
("hb", "Half Board"),
("bb", "Bed&Breakfast"),
("fb", "Full Board"),
("ao", "Apartment Only")

您需要在 FACILITIES 表中插入数据,如下所示:

INSERT INTO FACILITIES
(facid , description) 
VALUES 
("a", "accommodation"),
("e", "entertainment"),
("s", "sport"),
("m", "meals"),
("c", "children"),
("b", "bedroom")

【讨论】:

  • 非常感谢。最后一个问题。我将如何将半食宿 (hb)、Bed&Breakfast (bb)、全食宿 (fb) 或仅限公寓 (ao) 纳入标准?和这些住宿设施 a 娱乐 e 运动餐饮 m 儿童 c 卧室 b
  • 您必须为 stdbasis 创建一个单独的表,如下所示:stdbasis(id, description) 并将其用作酒店表中的外键,并将外键的约束设置为介于 0 之间到 4.
  • 查看更新后的解决方案,可能会帮助你理解sql
  • 我将创建表标准基础?我将把 hb、bb、fb、ao 放在哪里?度假村和/或酒店拥有游泳池、迪斯科舞厅、骑马、服务员服务、儿童游乐场、卧室电话等设施。设施分为许多不同的类别:住宿、娱乐、运动、餐饮、儿童、卧室b
  • 您的标准基础表包含 4 个实体:id description 1 hb 2 bb 3 fb 4 ao
猜你喜欢
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2017-11-02
  • 2017-06-06
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
相关资源
最近更新 更多