首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >数据库设计:表结构

数据库设计:表结构
EN

Stack Overflow用户
提问于 2016-05-09 14:40:58
回答 1查看 107关注 0票数 0

我有excel表单,其中包含可以从Server中提取数据并在excel窗体上显示信息的宏。用户可以更新表单,并将宏写回Server。

这是excel表单。用户需要输入那些突出显示在黄色上的值。例如,John输入用户字段为'JOHN‘,然后是区域'LATAM’、年份'2016‘和月份'3’。完成后,John将单击“检索”按钮,从Server中提取所有数据,其中Region = LATAM、Year=2016和Month = 3。所有相关信息将显示在字段区域、区域、Mgmt、CompanyCode、AcctUnit、帐户和值上(它可能有多行记录,用户不允许编辑这些记录)。现在John需要输入字段注释的值。完成后,John将单击“Save”按钮,excel宏将向Server写入注释值

在这里,excel宏的表结构将读写。

代码语言:javascript
复制
CREATE TABLE [dbo].[Sales](
[Region] [varchar](10) NOT NULL,
[Area] [varchar](10) NOT NULL,
[Mgmt] [varchar](10) NOT NULL,
[CompanyCode] [int] NOT NULL,
[AcctUnit] [varchar](7) NOT NULL,
[Account] [varchar](10) NOT NULL,
[Comment] [varchar](100) NULL,
[Year] [int] NULL,
[Jan] [float] NULL,
[Feb] [float] NULL,
[Mar] [float] NULL,
[Apr] [float] NULL,
[May] [float] NULL,
[Jun] [float] NULL,
[Jul] [float] NULL,
[Aug] [float] NULL,
[Sep] [float] NULL,
[Oct] [float] NULL,
[Nov] [float] NULL,
[Dec] [float] NULL,
[SYS_CreatedBy] [varchar](15) DEFAULT SYSTEM_USER,
[SYS_CreatedDate] [datetime] DEFAULT GETDATE(),
[SYS_ModifiedBy] [varchar](15) DEFAULT SYSTEM_USER,
[SYS_ModifiedDate] [datetime] DEFAULT GETDATE(),
CONSTRAINT [PK_Sales] PRIMARY KEY NONCLUSTERED
    (
    Region ASC, 
    Area ASC, 
    Mgmt ASC,
    CompanyCode ASC,
    AcctUnit ASC,
    Account ASC,
    )
)

基于上面的表结构,其他用户如何在不影响John已经更新为Server的注释的情况下发表评论呢?例如,John已经输入了他的注释,并且已经更新到SQL Server,现在Alice从SQL Server提取相同的数据,其中区域= LATAM,年份= 2016和月份= 3。她应该得到与John相同的数据,除了comments字段,在本例中,这个字段应该是空的,而不是John的注释。

在上表设计的基础上,评论的价值会因用户的不同而不断变化。如何重新设计表格结构,使评论对每个用户都是唯一的?

EN

回答 1

Stack Overflow用户

回答已采纳

发布于 2016-05-09 14:52:44

我将创建一个Comments表,并通过外键将其与Sales表关联。

为此,我将向Sales表添加一个代理键,这样就不需要将所有PK列添加到Comments表中。

票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/37118660

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档