我一直想知道是否有任何代码能够以某种对象树的形式表示SQL,这些对象树可以被组装,修改然后最终呈现为有效的SQL?
在我的头顶,它可能看起来像那样......
var stmnt = new Statement();
stmnt
  .AddMaster("Customer")
  .Show("Firstname, "Lastname")
  .AddJoin("Address", "ID", "CustomerID")
  .Show("Street", "City");
stmnt.WhereStatement()
  .AddParameter("Address.City", Op.Equal);
string sql = stmnt.Generate();
// select a.FirstName, a.LastName, b.Street, b.City
// from Customer a
// join Address b on b.CustomerID = a.ID
// where b.City = :p1
这只是一个例子,那里的东西可能完全不同,但是,是的,我很想听到那方面的内容.
更新:
我知道使用ORM技术从数据库中获取结果的众多可能性,但我正在使用SQL本身的模型.我知道抽象级别非常低,但它可能允许多个协作者可以处理SQL语句(多个连接,多个连接)的情况,然后可以在构建阶段结束时"呈现".
这个问题是关于语义的.
我有一个客户说,只有在引用将您自己的内容联合到第三方网站的动态对象时才应使用术语"小部件".我相信widget可用于引用站点(您自己或第三方)上的任何自包含动态对象.但是,我的客户说如果对象在您自己的网站上,那么它就是一个"小工具".
我不确定是否有官方定义,但我很想知道这两个术语之间的差异(如果有的话)的共同理解是什么?
简单(我希望),HTML问题.
假设我有一个跨越3列的列组.但它也跨越9行.但实际上,我希望有3个级别的列(基本上是3列,分为9行).唯一的目标是:
a)避免嵌入表格(出于各种原因)b)保持部分模块化.c)允许对语义模块化区域进行样式化.
所以最后,我会有一些视觉上的东西:
   | col 1  | col 2 | col 3 |
   | row 1  | row 1 | row 1 |
   | row 2  | row 2 | row 2 |
   | row 3  | row 3 | row 3 |
   | col 4  | col 5 | col 6 |
   | row 4  | row 4 | row 4 |
   | row 5  | row 5 | row 5 |
   | row 6  | row 6 …我有一个清单:
private readonly IList<IList<GameObjectController>> removeTargets;
private readonly IList<IList<GameObjectController>> addTargets;
PickUp继承自GameObjectController.但是,当我尝试这个:
public IList<PickUp> Inventory
// ... 
gameObjectManager.MoveFromListToWorld(this, user.Model.Inventory);
// ...
    // This queues everything up to be removed, until ProcessMoves...() is called
    public void MoveFromWorldToList(GameObjectController removedFromWorld, IList<GameObjectController> addTarget)
    {
        toBeRemoved.Add(removedFromWorld);
        addTargets.Add(addTarget);
    }
// ...
    /// <summary>
    /// Removes all the GameObjects on which removal is requested from the world.
    /// </summary>
    public void ProcessMovesFromListToWorld()
    {
        for (int i = 0; i < toBeAdded.Count; i++)
        {
            GameObjectController moved = …网上冲浪我遇到Aquabrowser(无需点击,我会发布相关部分的图片).
它有一种很好的方式来呈现搜索结果和发现语义链接的实体.
在左侧,您可以输入您输入的字词和相关字词.单击它们可以优化结果.

现在作为一个示例项目,我有一个电影实体和主题的数据集(如wolrd-war-2或prison-escape)及其关系.
现在我想象几个用例,首先是用户以关键字开头的情况.例如"第二次世界大战".
然后,我会以某种方式计算相关的关键字并对它们进行排名.
我想一些像这样的SQL查询:
让我们假设"第二次世界大战"有id 3.
select keywordId, count(keywordId) as total from keywordRelations 
WHERE movieId IN (select movieId from keywordRelations 
                  join movies using (movieId)      
                  where keywordId=3) 
 group by keywordId order by total desc
这基本上应该选择所有也有关键字world-war-2的电影,然后查找theese电影所拥有的关键词,并选择最容易出现的关键词.
我认为使用theese关键词我可以选择最匹配的电影,并且有一个包含类似电影和相关关键字的漂亮标签云.
我认为这应该有效,但非常非常非常低效.
它也只有一个级别或关系.
必须有一个更好的方法来做到这一点,但如何?
我基本上有一组实体.它们可以是不同的实体(电影,演员,主题,情节关键词)等.
我也有他们之间的关系.
必须以某种方式有效地计算实体的"语义距离".
我也希望实现更多层次的关系.
但我完全陷入困境.好吧,我尝试了不同的方法,但一切都以某些算法结束,需要花费很长时间才能计算出来,并且运行时间呈指数级增长.
是否有针对此优化的数据库系统?
有人能指出我正确的方向吗?
有没有首选/适当的风格? 
这个:
def fx(Boolean):
    if Boolean:
        # Do stuff.
    else:
        pass
或这个:
def fx(Boolean):
    if Boolean:
        # Do stuff.
else: pass如果您不希望发生任何事情,是否优先考虑?
我已经阅读了PEP 8  -  Python Code样式指南,并没有找到任何与我的问题有关的内容.
我想知道这样做是否有任何问题:
($this->debug)
    && print "We're debugging right now";
而不是这个:
if ($this->debug)
    print "We're debugging right now";
对我来说,这只是一种风格.它完全一样吗?
Python 3.2
这可能真的很愚蠢但是:
items = {'1': 'ACK', '2': 'RELQ', '3': 'COM'}
choice = input('Choose an option:\n1.ACK\n2.RELQ\n3.COM\n')
print(choice)
if choice in items:
    print(choice)
    option = items[choice]
else:
    print('Input not recognized')
如果你输入1,它会一直返回
1
Input not recognized
这choice in items是假的吗?
这应该很容易,但我不知道它是什么.
更新:
print(type(choice))` returns str
print(len(choice)) returns 2
print(repr(choice)) returns '1\r'
print(choice[0]) returns 1
输入正在接收带有input()的\ r \n换行符
我试图了解进程和线程之间的区别,我理解了所有重要的观点,但我无法理解这一行:
典型的区别在于(同一进程的)线程在共享内存空间中运行,而进程在不同的内存空间中运行.
这是参考.
任何人都可以帮我理解记忆空间在这里意味着什么吗?上面的内容对外行人来说意味着什么才能让我理解?
我有一个关于perl如何执行"do"功能的问题.
假设我有一个类似这样的函数:
sub foo {
    package bar;
    %bar::h_test = ('b' => 'blah');
}
当使用严格和警告时,这将运行得很好.现在假设我有以下perl脚本,"test.pl":
%h_test = ('b' => 'blah');
现在我可以重写上一个函数,如下所示:
sub foo {
    package bar;
    do ('test.pl');
}
似乎"do"允许我使用不合格的名称,只要我将它们保存在文件中即可.我理解为什么从设计的角度来看这是有道理的,因为那里的每个脚本都不可能知道谁在调用它.但是,我不确定使用"do"运行代码的准确规则是什么.
那么它是怎样工作的?阅读perldoc并没有对这个问题有所了解
谢谢.