我有一个可以进入的项目。问题是我是这个应用程序中的新手,我真的不知道该怎么做,我已经检查了几种方法,但仍然被困住了。
我将处理一个调查文件,将维护每个客户的答案。对客户的访问是在一年内每月进行的,这意味着客户可以在一年内进行12次访问。
我的问题是,如果我要维持这个项目在未来五年或更长的时间,我必须保持在我的表中的另一个领域,将阻止重复的条目。
最好把文件附上去,但我找不到办法。下面是我想要的布局:
在我的表中,字段1将连接其他字段。年份为字段2,月份(字段3),客户代码(字段4)等10个被调查产品。
我需要连接字段2,3和4,这样我可以看到客户是否在那个特定的月份和年份被输入,如果我的表单中已经存在,我可以安排一个警告。
发布于 2014-09-07 07:09:14
您根本不需要将字段连接起来。通过使用以下所有3列,您可以了解客户是否已填写了给定月份和年份的调查:
SELECT * FROM Surveys
WHERE CustomerID = 1
AND SurveyMonth = Month(Date())
AND SurveyYear = Year(Date())函数返回当前系统日期。月份()和年份()函数分别返回传递给它们的日期的月份和年份。
建议:将调查的整个日期存储在数据库中,而不是使用单独的月份和年份列。这将简化查找和存储,使上面的查询看起来更像:
SELECT * FROM Surveys
WHERE CustomerID = 1
AND Month(SurveyDate) = Month(Date())
AND Year(SurveyDate) = Year(Date())其中SurveyDate是日期类型的列。
发布于 2015-07-12 19:36:12
您需要在SurveyMonth和SurveyYear字段上建立唯一的索引,以防止重复的条目。
您确实应该对月份和年份字段有一个限制,以避免输入无效的数字。
若要限制这些值,请创建存储允许的月和年值的其他表,然后将外键关系添加到主表中。
这可以比单个日期字段更简单地实现,因为最终您将分离出月份和年份,并且必须处理日期中可能难以访问的日期部分。
https://dba.stackexchange.com/questions/75878
复制相似问题