0

我对数据库真的很陌生,所以请多多包涵。

我有一个网站,人们可以去那里索取即将举行的音乐会的门票。用户可以申请纽约或达拉斯的门票。同样,对于这些区域中的每一个,他们都可以申请 VIP 票或普通票。

我需要一个数据库来跟踪有多少人请求了每种类型的票(VIP and NYVIP and DallasRegular and NYRegular and Dallas)。这样,我的票就不会用完了。

我应该为这个数据库使用什么模式?我应该有 1 行然后 4 列(VIP&NY、VIP&Dallas、Regular&NY 和 Regular&Dallas)吗?问题是它看起来不是很灵活,因此我不确定它是否是好的设计。

4

4 回答 4

2

您应该有一列包含数量,一列指定类型 (VIP),另一列指定城市。

于 2013-07-30T23:37:31.513 回答
2

为了使其灵活,您将执行以下操作:

Table: 
    location
Columns:
    location_id  integer
    description  varchar

Table
    type
Columns:
    type_id      integer
    description  varchar

table 
    purchases
columns:
    purchase_id integer
    type_id     integer
    location_id integer

通过这种方式,您可以添加更多城市、更多类型,并且始终将它们插入购买中。

当你想知道你卖出了多少时,你可以数一数

于 2013-07-30T23:43:00.120 回答
0

您想要做的是一张带有城市的表格和一张带有门票类型的表格。然后你创建一个与 [城市、票证类型、票证数量] 的弱关联。

该表将有 2 个外键,因此“弱”。

但这使您可以添加或删除城市等。您也可以为音乐会添加一个表,而您的弱表将有另一个外键“音乐会”。

我认为这是最正确的方法。

于 2013-07-30T23:42:26.187 回答
0
CREATE TABLE `tickets` (
   `id` int(11) NOT NULL AUTO_INCREMENT,
   `locale` varchar(45) NOT NULL,
   `ticket_type` varchar(45) NOT NULL
}

这是您的表格的简单表示。理想情况下,您应该为语言环境和类型设置单独的表。你的桌子看起来像这样:

CREATE TABLE `tickets` (
   `id` int(11) NOT NULL AUTO_INCREMENT,
   `locale_id` int(11) NOT NULL,
   `ticket_type_id` int(11) NOT NULL
}
于 2013-07-30T23:46:08.680 回答