关于数据库设计的一个小问题
当人们点击 3 个不同的按钮时,我有 3 个项目(点击数、人数、学位)需要更新
正如你所知,SQL 查询几乎是相同的,就像:
update Mytable set XX = XX + 1 where ID = @ID
我想问的是:
- 我应该写 3 个不同的存储程序, 或者
我应该设置一个参数来区分这3个进程,也许是这样的:
if @flag = 'hits' 开始 ... 结尾
非常感谢!
I got 3 items (hits, num_of_people, degree) to update while the people click 3 different buttons
And as you know, the SQL query are almost the same, just like:
update Mytable set XX = XX + 1 where ID = @ID
What I want to ask is that:
- Should I write 3 different stored procedures,
or Should I set a parameter that distinguishes these 3 process, maybe something like:
if @flag = 'hits' begin ... end
Thanks so much!
如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。
绑定邮箱获取回复消息
由于您还没有绑定你的真实邮箱,如果其他用户或者作者回复了您的评论,将不能在第一时间通知您!
发布评论
评论(2)
编写三个不同的存储过程。
首先,随着时间的推移,这是一个更稳健的设计 - 例如,稍后当您的需求略有变化时,您可以仅修改适当的存储过程。
Write three different stored procs.
Firstly this is a more robust design over time - for instance, later when yours needs change slightly you can modify only the appropriate stored proc.
我不认为你可以在 SQL 查询中绑定表名或列名。绑定通常是为 ID 值等参数保留的,而不是为列名称保留的。
话虽如此,我会为每个独立操作编写三个单独的 INSERT 语句。无论您是否选择使用存储过程来实现它们都是您的选择。
I don't think you can bind table or column names in SQL queries. Binding is usually reserved for parameters like the ID value, not the name of the column.
With that said, I'd write three separate INSERT statements for each independent operation. Whether or not you choose to implement them using stored procedures is your choice.