小编Nat*_*ate的帖子

数据库"密钥/ ID"设计思想,代理密钥,主键等

所以我最近看到了几个提到代理键的提示,我不确定它是什么以及它与主键的区别.

我总是认为ID是我在这样的表中的主键:

Users
    ID, Guid
    FirstName, Text
    LastName, Text
    SSN, Int
Run Code Online (Sandbox Code Playgroud)

但是,维基百科将代理键定义为"数据库中的代理键是建模世界中的实体或数据库中的对象的唯一标识符.代理键不是从应用程序数据派生的."

根据维基百科,看起来ID是我的代理键,我的主键可能是SSN + ID?这是正确的吗?这是一个糟糕的桌子设计吗?

假设表格设计合理,那么这样的表格是不是很糟糕,对于一个数据没有任何独特之处的表格呢?

LogEntry
    ID, Guid
    LogEntryID, Int [sql identity field +1 every time]
    LogType, Int
    Message, Text
Run Code Online (Sandbox Code Playgroud)

sql database-design

6
推荐指数
2
解决办法
3888
查看次数

哪个是SQL Server数据库中最常见的ID类型,哪个更好?

使用Guid(UniqueIdentifier)作为Primary/Surrogate Key列或序列化的"identity"整数列是否更好; 和为什么它更好?在哪种情况下你会选择一个而不是另一个?

sql sql-server database-design

6
推荐指数
3
解决办法
1万
查看次数

在数据库中存储用户访问级别

我在表中存储了"用户"列表.应用程序的业务逻辑将引用一个对象,该对象包含此表中当前登录用户的所有数据.并且如果用户具有正确的访问权限,则能够允许用户执行操作.

我想知道存储"访问级别"的最佳方法是什么?

我想要存储访问级别的一种方式是整数,并且使用C#"flags"来组合多个访问级别而不需要一堆字段,这是明智的吗?

Create  = 1
Read    = 2
Update  = 4
Delete  = 8
FullAcc = 16
Run Code Online (Sandbox Code Playgroud)

我正在考虑的另一个选择,感觉不那么优雅,但我已经看到它做了很多:

Read/Write  = 1
R/W + Delete= 2
Full Access = 3
Run Code Online (Sandbox Code Playgroud)

我想知道的原因是,在第二种方法中添加其他项似乎更简单,但在某些时候,维护它会变得很麻烦.你的想法是什么?

.net c# database database-design

6
推荐指数
1
解决办法
1452
查看次数

.Net webApi ISO datetime和IE8

.Net WebAPI在序列化DateTime时默认使用ISO DateTime格式.当IE8尝试在新的Date()构造函数中使用此ISO DateTime格式时,它会中断返回的NaN.  

var d = new Date('2012-09-06T15:28:56.215Z');
alert(d);
Run Code Online (Sandbox Code Playgroud)

 

Firefox处理这个很好.还没试过Chrome.IE8休息,返回NaN.  

我假设ISO日期是我在WebAPI中使用的一种很好的格式.我还希望我的Javascript客户端能够处理转换为本地时间并重新格式化DateTime以便它易于阅读 - 这就是我使用Date类型而不仅仅是将ISO日期保持为字符串的原因.  

鉴于这一切,我处理ISO DateTime格式的最佳方式是什么,以便IE8不会窒息?    

.net javascript browser datetime asp.net-web-api

6
推荐指数
1
解决办法
1740
查看次数

在Javascript中将GMT中的日期/时间转换为EST

在Javascript中,无论用户设置如何,如何将GMT中的日期/时间转换为EST?

javascript

5
推荐指数
2
解决办法
1万
查看次数

错误日志数据库 - 适用于许多应用

我有一堆现有的客户端/服务器应用程序正在进行中.偶尔,客户端会想要添加某种类型的Web界面来访问部分数据.这些通常是定制的,虽然有些是"通用的"; 但是每个人在自己的VM中都有自己的"实例".

我想要的是一个集中区域来捕获和记录任何这些VM上出现的任何错误.

我正在创建一个新数据库并设置一个WCF服务,以使这些Web应用程序能够在我的集中式数据库和本地EventLog中创建一个日志条目.

这是一个糟糕的设计吗?

更新

Web应用程序位于2003/IIS6和2008/IIS7中,内置于ASP.NET中.许多实例位于一对Web服务器上,但许多实例将部署到各个VM.

logging error-logging exception

5
推荐指数
1
解决办法
3019
查看次数

主页上的禁用按钮.net 4.0(c#)

我试图在满足某些条件时从内容页面禁用母版页上的按钮.我可以使用会话变量更改母版页按钮上的文本,但IM对这个最新位有点麻烦 - 任何暗示任何人?

.net c# master-pages

5
推荐指数
1
解决办法
2118
查看次数

如何在从Windows Phone 7调用的WCF服务中配置会话?

我有一个从WP7调用的服务.我知道WP7(Silverlight的)只支持basicHtptBinding直到今天,不幸的是它不支持会话,所以我不能在这个服务中使用InstanceContextMode.PerSession和SessionMode.Required.但我在服务器上有一些数据,我需要在会话的基础上保留它.我有什么选择?

c# silverlight wcf windows-phone-7

5
推荐指数
1
解决办法
806
查看次数

用于Webapp和桌面/移动应用程序的OpenID + OAuth身份验证和授权

我想使用OpenID来验证我的webapp上的用户 - 类似于StackExchange的做法.我还想让我的网站用户使用同一帐户使用我的桌面和移动应用程序.我读过这个需要OAuth(OpenID只是纯粹的网站).

我不知道的是

  • 这是正确的方法吗?
  • 这将是什么工作流程?
  • 每个用户/ OpenID在我的数据库中需要哪些数据?我是否存储"帐户",然后在使用OpenID进行身份验证后,我允许他们为移动应用生成OAuth令牌?

在一个理想的世界中,我可以使用类似于https://stackoverflow.com/users/login上的按钮,用于我的WebApp以及我的桌面和移动应用程序,这些按钮只允许用户使用他们的谷歌或facebook帐号,这可能吗?用户的简单性是至关重要的,因为我的用户群不会带来任何远程复杂的东西.

我可以使用DotNetOpenAuth之类的东西来提供所有这些功能吗?

更好的解决方案是打破这个并允许用户使用OpenID对我的网站进行身份验证,然后我为我的桌面和移动客户端提供自己的OAuth方案吗?

asp.net security openid oauth

5
推荐指数
1
解决办法
911
查看次数

我如何使用C#代码向WP添加新的完整联系人?

我想用C#代码添加WP联系人列表的新联系人.但不能使用SaveContactTask或SavePhoneNumberTask等.

我想为WP联系人数据库添加高级联系人.如何访问Windows Phone的联系人数据库以保存我的联系人数据?

c# windows-phone

5
推荐指数
1
解决办法
1259
查看次数