我有这3张桌子
问题表
Ques |Ans |QuesID|LangID
__________________________________________
Ques1|Ques1's Answer|1 |1
Ques2|Ques2's Answer|2 |2
LangID是在表格语言中引用LangID的外键
语言表
LangID |Description|LanguageID
______________________________________
1 |French |1
2 |English |2
语言表用于网站内容的语言
编辑语言表
LanguageID|Value|Desc
______________________
1 |fr-FR|French
2 |en-US|English US
EditorLanguage表用于RadEditor的语言
添加新的问题时: -
InsertUpdateQues存储过程在Ques Table中插入以下值: -
QuesID,Ques,Ans,LangID
现在在我的Ques Page上,我有以下内容: -
-A drop down list box to select language (this drop down is bound to EditorLanguage Table's Desc column)
-A Text Box for Ques
-Telerik RadEditor for Ques's Answer
- Submit cancel buttons
现在让我们说从下拉列表中选择的语言是法语,其语言ID = 1,值= fr-FR,desc =法语
现在如何将此LangID值传递给InsertUpdateQues存储过程。我的意思是它应该如何获得这个值?
我很困惑,因为这个外键的东西..新太ms sql
如何形成逻辑?甚至在这里发生了什么? 好吧,它会以某种方式得到LangID但是它有多好用呢?我突然感到迷茫。
答案 0 :(得分:1)
为什么Languages
和EditorLanguage
分开?根据您向我们展示的内容,看起来它们会更好地作为单个表格。表名和键名也不直观。
就目前而言,您必须将表单发布的LanguageID
翻译为LangID
表所需的Ques
。这可以通过点击数据库(或缓存的查找)在代码中完成,从LangID
中选择Languages
,其中LanguageID
等于您拥有的值。或者你可以在你正在调用的存储过程中执行此操作(因此它只需要一次访问数据库),方法是在变量中选择值并在插入/更新中使用变量,或者使用子查询插入/更新以选择值。
请注意,如果Languages
和EditorLanguage
之间存在任何一对多关系,则可能会出现问题。