我有一个简单的webform,允许未经身份验证的用户输入他们的信息,包括姓名.我给名字字段限制了50个字符,以便与我的数据库表一致,其中字段是varchar(50),但后来我开始怀疑.
使用像Text列类型这样的东西更合适,还是应该将名称的长度限制在合理的范围内?
我正在使用SQL Server 2005,以防您的回复中的问题.
编辑:我没有看到关于类似问题的更广泛的问题.
我经常遇到以下问题.
我正在对需要数据库中的新表或列的项目进行一些更改.我进行数据库修改并继续我的工作.通常,我记得记下这些更改,以便可以在实时系统上复制它们.但是,我并不总是记得我改变了什么,我也不记得写下来.
所以,我推动了现场系统并得到一个很大的,明显的错误,没有NewColumnX,呃.
无论这可能不是这种情况的最佳实践,是否有数据库的版本控制系统?我不关心具体的数据库技术.我只是想知道一个是否存在.如果它恰好适用于MS SQL Server,那么很棒.
我经常遇到以下场景,我需要提供许多不同类型的权限.我主要使用ASP.NET/VB.NET和SQL Server 2000.
脚本
我想提供一个可以处理不同参数的动态权限系统.假设我想要一个部门或只是一个特定的人访问一个应用程序.并假装我们有许多应用程序不断增长.
在过去,我选择了以下两种方式中的一种,我知道这样做.
使用具有特殊列的单个权限表,这些列用于确定如何应用参数.此示例中的特殊列是TypeID和TypeAuxID.SQL看起来像这样.
SELECT COUNT(PermissionID)
FROM application_permissions
WHERE
(TypeID = 1 AND TypeAuxID = @UserID) OR
(TypeID = 2 AND TypeAuxID = @DepartmentID)
AND ApplicationID = 1
Run Code Online (Sandbox Code Playgroud)为每种类型的权限使用映射表,然后将它们连接在一起.
SELECT COUNT(perm.PermissionID)
FROM application_permissions perm
LEFT JOIN application_UserPermissions emp
ON perm.ApplicationID = emp.ApplicationID
LEFT JOIN application_DepartmentPermissions dept
ON perm.ApplicationID = dept.ApplicationID
WHERE q.SectionID=@SectionID
AND (emp.UserID=@UserID OR dept.DeptID=@DeptID OR
(emp.UserID IS NULL AND dept.DeptID IS NULL)) AND ApplicationID = 1
ORDER BY q.QID ASC
Run Code Online (Sandbox Code Playgroud)我的想法
我希望这些例子有意义.我把它们拼凑在一起.
第一个例子需要较少的工作,但他们都不是最好的答案.有没有更好的方法来处理这个?
我正在阅读John Resig的" Pro Javascript Techniques ",我对一个例子感到困惑.这是代码:
// Create a new user object that accepts an object of properties
function User( properties ) {
// Iterate through the properties of the object, and make sure
// that it's properly scoped (as discussed previously)
for ( var i in properties ) { (function(){
// Create a new getter for the property
this[ "get" + i ] = function() {
return properties[i];
};
// Create a new setter for the property
this[ "set" …Run Code Online (Sandbox Code Playgroud) 嘿所有,我试图测试传递给我的函数的参数是否是类名,以便我可以使用instanceof将其与其他类进行比较.
例如:
function foo(class1, class2) {
// Test to see if the parameter is a class.
if(class1 is a class)
{
//do some kind of class comparison.
if(class2 is a class)
{
if(class1 instanceof class2)
{
//...
}
}
else
{
//...
}
}
else
//...
}
Run Code Online (Sandbox Code Playgroud)
这可能吗?我在google答案时遇到了麻烦.
我正在使用这样的路线:
routes.MapRoute("Invoice-New-NewCustomer",
"Invoice/New/Customer/New/{*name}",
new { controller = "Customer", action = "NewInvoice" },
new { name = @"[^\.]*" });
Run Code Online (Sandbox Code Playgroud)
有一个动作可以处理这条路线:
public ActionResult NewInvoice(string name)
{
AddClientSideValidation();
CustomerViewData viewData = GetNewViewData();
viewData.InvoiceId = "0";
viewData.Customer.Name = name;
return View("New", viewData);
}
Run Code Online (Sandbox Code Playgroud)
当我调用return RedirectToAction("NewInvoice", "Customer", new {name});并且name等于"C#Guy"时,"name"参数被截断为"The C".
所以我的问题是:使用ASP.NET MVC处理这种特殊字符的最佳方法是什么?
谢谢!
业务规则违规是否会引发异常?
虽然最近的Coding Horror博客文章并不是我第一次听到这个概念,但正如我在阅读它时,我忍不住将它应用到我自己的项目中.
我正在处理的代码库是一个正在进行的项目,大约在3年的时间里,项目早期阶段的大部分代码都是由开发人员编写的,这些开发人员的监督很少,导致很多代码重复,性能不佳等.在与管理层的讨论中,我试图证明有几个关键组件需要重构,这样做会在添加新功能时节省大量时间和麻烦.并修复这些关键领域的错误.虽然他们似乎相信我重构这些组件会很好,但他们不想给我这样做的余地.请注意,我不是在谈论重写整个代码库或任何戏剧性的内容,而只是重写一些需要2-3周的核心领域.
那么问题是,作为开发人员,如何向您的经理出售这些领域需要解决的问题并制定业务案例以便现在有时间解决这些问题,而不是仅仅在这里和那里逐步改进?
我有一组叫做的对象Gigs.
每个Gig都有一个Acts集合.
使用Linq我想查询我的演出集合以获取所有演出,其中例如具有id为7的动作.
act.id = 7;
Run Code Online (Sandbox Code Playgroud)
所以我开始写作......
return from gig in qry
where gig.Acts //not sure how to do this bit
select gig;
Run Code Online (Sandbox Code Playgroud)
但是我不确定你是如何为名为actions的子集合设置条件的.
有任何想法吗?
为了使我的问题清楚,请允许我定义标题的术语 -
生产支持团队是维护当前正在使用的软件应用程序的资源.开发人员是从需求中编写软件应用程序的程序员.
通常至少在我的工作经验中,这两个团队最多只会见一次或两次,以讨论下一个产品发布.假设生产支持团队将在不查看需求或设计文档或永远与客户或利益相关者会面的情况下了解潜在风险.预计在与开发团队的一两次会议中,Prod支持团队将了解并缓解和解决此版本中的潜在风险.
这就是问题所在,我的任务是制定准则来缩小生产支持团队和开发人员之间的差距.你有什么想法?当两支球队走到一起时需要提出什么问题?
sql ×3
javascript ×2
.net ×1
asp.net-mvc ×1
c# ×1
database ×1
exception ×1
html ×1
linq ×1
oracle ×1
permissions ×1
rules ×1
textbox ×1