繁体   English   中英

用于存储int的数据库架构

[英]Database schema for storing ints

我真的是数据库新手,请耐心等待。

我有一个网站,人们可以在那里索取即将举行的音乐会的门票。 用户可以要求购买纽约或达拉斯的门票。 同样,对于这些语言环境中的每个语言环境,他们都可以请求VIP票证或普通票。

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

我应该为该数据库使用哪种模式? 我应该一行然后四列(VIP&NY,VIP&Dallas,Regular&NY和Regular&Dallas)吗? 问题在于它似乎不太灵活,因此我不确定它是否是好的设计。

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

为了使其更加灵活,您可以执行以下操作:

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

这样,您可以添加更多城市,更多类型,并且始终将它们插入购买中。

当您想知道您卖出了多少时,就算上它们

您想要做的就是一张包含城市的表,一张包含票证类型的表。 然后,您将与[城市,票证类型,票证数量]建立一个弱关联。

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

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

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

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
}

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM