将“航班”分配给已登录/注册的用户?

时间:2015-04-08 17:01:04

标签: c# sql database asp.net-mvc-4 razor

我在Visual Studio 2013中有一个使用Razor语法的小型ASP.NET MVC4项目。它是一家虚构的私人飞机租赁公司的网站。

目前在我的网站上我有:

  • 功能齐全的log-in/ register功能(允许用户登录/注册网站)
  • 包含所有已注册用户的数据库(只有admin@admin.com用户可以看到此内容且能够edit/ create new/ delete个用户)
  • 航班数据库(管理员可以编辑)

这是我的项目文件的Gisthttps://gist.github.com/anonymous/3528ab17e13c6d5b2460

这是我当前的SystemUsers表格的样子: http://gyazo.com/c5013d885723eae7bf578e01cbe1a39c

CREATE TABLE [dbo].[SystemUsers] (
    [Email]        NVARCHAR (50)  NOT NULL,
    [Password]     NVARCHAR (MAX) NOT NULL,
    [PasswordSalt] NVARCHAR (MAX) NOT NULL,
    [FirstName]    NVARCHAR (MAX) NOT NULL,
    [Surname]      NVARCHAR (MAX) NOT NULL,
    [Age]          INT            NOT NULL,
    [MobileNumber] NVARCHAR (12)  NOT NULL,
    [HomeNumber]   NVARCHAR (12)  NOT NULL,
    PRIMARY KEY CLUSTERED ([Email] ASC)
);

这是FLightsTable的样子: http://gyazo.com/891bc17d709bdac4f5bfb443ffe6c5a3

CREATE TABLE [dbo].[FlightsTable] (
    [FlightID]        INT           NOT NULL,
    [Departure]       NVARCHAR (50) NOT NULL,
    [Arrival]         NVARCHAR (50) NOT NULL,
    [NumberOfSeats]   INT           NOT NULL,
    [NumberOfFlights] INT           NOT NULL,
    PRIMARY KEY CLUSTERED ([FlightID] ASC)
);

为了将flight分配给user我假设我必须在我的数据库中创建一个新表并存储用户Email + {{1 }}?如果是这样,我如何从两个表中检索此信息并将其放入我的新表中?

我希望用户能够选择航班并预订,这意味着航班上的空间数量会减少。

将声明此操作(意味着从两个表中获取信息并将其存储到单独的表中)的位置?为了实现这一目标,我需要创建哪些附加文件?

1 个答案:

答案 0 :(得分:0)

是的,航班预订的链接表似乎是合适的,两个表中的主键在多对多的关系中。您可能还需要有关此表中特定预订的其他信息,例如预订座位数,预订日期,使用信用卡,应用折扣优惠券等。

当客户预订航班时,您可以向此表添加行。 您可以在显示客户预订时查看此表中的行数,或确定航班上剩余的座位数(例如:availableSeats = Flight.NumberOfSeats - bookings.Where(b => b.FlightId == Flight.FlightId).Select(b => b.NumberOfSeats).Sum();)。 当客户想要修改/取消预订或取消航班时,您将更新此表中的行。