在数据层上加这样一个东西合理吗?

2015-08-08 18:05:11 +08:00
 iugo

不特指某一种语言.

两张表, 用户表和成绩表

用户表:
userid, name, age

成绩表:
testid, userid, scores, time

select = select('userid', '12');
data = {'name': 'Jim'};
write = query(select, data);

select = select('userid', '13');
data = {'name': 'Sam', 'age': '21'};
write = query(select, data);

select = select('userid', '13');
data = ['name', 'age'];
read = query(select, data);

select = select('userid', '13');
data = {'find': 'test', 'field':['scores', 'time']};
read = query(select, data);

如果这个东西加上比不加好, 那么这样写合理吗?

3134 次点击
所在节点    程序员
23 条回复
zjqzxc
2015-08-08 20:31:18 +08:00
消灭零回复。。
好吧,看了足足3分钟还没看明白楼主要干嘛。。(楼主这不给一点儿文字描述就说什么好不好,这个东西是啥呢?还有哈,楼主这12行数据库操作语句是啥语言的,,看起来怪怪的)
楼主的意思是指定了一个用户表中的一个userid,然后再找出他的名字,再在成绩表中找出他某此考试的成绩,大概是这个意思吧。
但是,我还是不明白这个好不好指的是啥。
目前是:
step1:SELECT name,age FROM 用户表 WHERE userid=13
step2:SELECT scores,time FROM 成绩表 WHERE userid=13 AND testid=test
是这个意思吧
realpg
2015-08-08 20:38:03 +08:00
@zjqzxc
崇拜死你了 3分钟就看明白了
我看了了一小时又30分钟也没看明白是啥意思

对于一个强迫症来说,看这个没回复的帖子悬在这里点进去就是看不懂 也没别人看得懂 那个难受啊
xierch
2015-08-08 21:18:37 +08:00
我也没看懂,好难受..
lujiajing1126
2015-08-08 21:34:32 +08:00
应该是说ORM吧?

楼主这写的是什么奇怪的语言。。看上去符合js的语法
zonghua
2015-08-08 21:44:32 +08:00
@lujiajing1126 应该是python,java web里面的service层和一些node里面的proxy层是一致的吗?
lujiajing1126
2015-08-08 21:49:29 +08:00
@zonghua node的proxy层是指什么?
rming
2015-08-08 21:53:05 +08:00
楼主说的 query builder么?
9hills
2015-08-08 22:36:16 +08:00
不合理,不解释
zonghua
2015-08-08 22:46:17 +08:00
qiayue
2015-08-08 22:59:16 +08:00
select = select('userid', '12');
data = {'name': 'Jim'};
write = query(select, data);

修改用户表 userid 为 12 的记录的 name 为 Jim

select = select('userid', '13');
data = {'name': 'Sam', 'age': '21'};
write = query(select, data);

修改用户表 userid 为 13 的记录的 name 为 Sam,age 为 21

select = select('userid', '13');
data = ['name', 'age'];
read = query(select, data);

从用户表取出 userid 为 13 的用户的 name 和 age

select = select('userid', '13');
data = {'find': 'test', 'field':['scores', 'time']};
read = query(select, data);

没太明白,大概是从成绩表取出 userid 为 13 的记录的 scores 和 time ?

依然不知道楼主想问的是什么,什么东西加上还是不加?
lujiajing1126
2015-08-08 22:59:36 +08:00
@zonghua 嗯,这个应该和service的思想类似的
不过叫proxy只是写代码的人起的吧?并没有明确的标准
yuankui
2015-08-08 23:07:07 +08:00
你能表达清楚你的问题么?

你这是对回答者的不尊重
omengye
2015-08-09 00:56:53 +08:00
看上去是orm之类的思想,不直接去写sql,用方法去拼接生成。不好说好不好…得看实际情况吧。
iugo
2015-08-09 09:38:33 +08:00
@zjqzxc
@realpg
@xierch
@lujiajing1126
@zonghua
@rming
@9hills
@qiayue
@yuankui
@omengye

抱歉耽误大家时间了.

"不特指某一种语言."

想脱离某种具体的语言, 看看这种想法是否可行. 对系统有没有正向的帮助.
realpg
2015-08-09 09:43:19 +08:00
@iugo

select = select('userid', '12');

我学历低你别骗我,你写成
select = where('userid', '12');
我觉得不会有人看不懂……
各位看不懂的,各位李伟呢
iugo
2015-08-09 09:59:28 +08:00
@realpg

当时想的可能会有这样的用法:

select = select('userid');
data = ['name', 'age'];
read = query(select, data);

取出所有人的名字和年龄
jarlyyn
2015-08-09 10:43:29 +08:00
感觉楼主想要这样的东西?

http://docs.sequelizejs.com/en/latest/docs/querying/
neoblackcap
2015-08-09 10:57:29 +08:00
据我所知,Python里面的SQLAlchemy框架是有泛型的,可以完成你这样的需求。
mahone3297
2015-08-09 11:14:11 +08:00
orm?
lightening
2015-08-09 11:19:31 +08:00
我觉得楼主说的就是 ORM ……

这是一个专为移动设备优化的页面(即为了让你能够在 Google 搜索结果里秒开这个页面),如果你希望参与 V2EX 社区的讨论,你可以继续到 V2EX 上打开本讨论主题的完整版本。

https://www.v2ex.com/t/211773

V2EX 是创意工作者们的社区,是一个分享自己正在做的有趣事物、交流想法,可以遇见新朋友甚至新机会的地方。

V2EX is a community of developers, designers and creative people.

© 2021 V2EX