C# 是否将“航班”分配给登录/注册用户?

C# 是否将“航班”分配给登录/注册用户?,c#,sql,database,asp.net-mvc-4,razor,C#,Sql,Database,Asp.net Mvc 4,Razor,我在Visual Studio 2013中有一个小型ASP.NET MVC4项目,它使用了Razor语法。这是一家虚构的私人飞机租赁公司的网站 目前在我的网站上,我有: 功能齐全的登录/注册功能允许用户登录/注册网站 数据库,其中包含仅在admin@admin.com用户可以看到这一点,并且可以编辑/创建新用户/删除用户 管理员可以编辑的航班数据库 以下是我的项目文件外观的要点: 以下是我当前的SystemUsers表的外观: 下面是我的FLightsTable的外观: 为了将航班分配给用户

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

目前在我的网站上,我有:

功能齐全的登录/注册功能允许用户登录/注册网站 数据库,其中包含仅在admin@admin.com用户可以看到这一点,并且可以编辑/创建新用户/删除用户 管理员可以编辑的航班数据库 以下是我的项目文件外观的要点:

以下是我当前的SystemUsers表的外观:

下面是我的FLightsTable的外观:

为了将航班分配给用户,我假定我必须在数据库中创建一个新表,并存储用户的电子邮件+FlightID?如果是这样,我将如何从两个表中检索此信息并将其放入新表中

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


这个操作意味着从两个表中获取信息并将其存储到一个单独的表中,将在何处声明?为了实现这一点,我还需要创建哪些其他文件?

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

当客户预订航班时,您可以在此表中添加行。 当显示客户的预订时,您可以读取此表中的行,或者确定航班上剩余的座位数,例如:AvailableSets=flight.NumberOfSeats-bookings。其中b=>b.FlightId==flight.FlightId.Selectb=>b.NumberOfSeats.Sum;。
当客户想要修改/取消预订或航班取消时,您可以更新此表中的行。

您好,谢谢您的回复。对于这个解决方案,我有一些疑问。如何使第三个表包含多对多关系中的两个主键?你能给我举个例子说明这是如何工作的吗?此外,当客户想要预订时,是否可以使用下拉菜单读取FlightsTable中的行,然后将其分配到预订(即预订表)?如果是这样的话,你能把我联系到正确的方向吗?谢谢我完全不明白你的问题。大概你知道登录系统的用户的主键,当他们选择航班时,你知道他们选择的航班的航班id,对吗?然后,当他们选择一定数量的座位并单击“预订此航班”时,您会在链接表中添加一行,其中包含电子邮件和航班id以及其他预订信息。这是一个相对基本的数据库设计,对于堆栈溢出来说,这可能是一个过于宽泛的问题。。。
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)
);
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)
);