问题列表 - 第29671页

MySQL - 处理这种分层数据的最佳方法?

这是对以下内容的跟进:
MySQL - 是否可以获取层次结构中的所有子项?

我有一个任意深度的邻接列表模型表(我可以将它转换为嵌套集模型.

我阅读了有关如何使用嵌套集模型的MySQL数据,尽管它似乎变得越来越复杂并且非常复杂,无法执行插入,更新和删除等基本功能.

另一篇博客展示了如何使用具有邻接列表模型的触发器系统来保持将每个对象与其祖先相关联的祖先表.


现在我需要能够返回给定节点的所有子节点的列表,以更改或删除它们.这种层次结构一旦创建就不会一直在变化,但会有大量的层次结构.

我看到的三种方法是:

  1. 创建了一个存储过程,它将执行一个返回所有子节点的递归查询.

  2. 转换为嵌套集模型,这需要进入复杂性并可能创建一个存储过程来添加,编辑和删除.

  3. 在插入/删除触发器上创建上述Ancestor Table以处理所有数据.

如果还有其他方法我没有探索,请告诉我,我会更新此列表.

mysql table-structure

5
推荐指数
1
解决办法
4186
查看次数

在dicts上使用@property装饰器

我正在尝试@property在类中的dict上使用Python的装饰器.我的想法是,我希望在访问后清除某个值(称之为"消息").但我还想要另一个值(称之为'last_message')来包含最后设置的消息,并保留它直到另一个消息被设置.在我看来,这段代码可行:

>>> class A(object):
...     def __init__(self):
...             self._b = {"message": "", 
...                        "last_message": ""}
...     @property
...     def b(self):
...             b = self._b
...             self._b["message"] = ""
...             return b
...     @b.setter
...     def b(self, value):
...             self._b = value
...             self._b["last_message"] = value["message"]
...
>>>
Run Code Online (Sandbox Code Playgroud)

但是,它似乎不是:

>>> a = A()
>>> a.b["message"] = "hello"
>>> a.b["message"]
''
>>> a.b["last_message"]
''
>>>
Run Code Online (Sandbox Code Playgroud)

我不确定我做错了什么?在我看来似乎@property不像我期望的那样工作,但也许我在做其他根本错误的事情?

另外,我知道我可以在课堂上使用个别值.但这是作为Web应用程序中的会话实现的,我需要它作为一个词典.我可以使这个工作,或使整个会话对象假装它是一个字典,或使用单个变量,并在其余的代码库中将其破解为工作性.我宁愿让这个工作.

python getter setter dictionary properties

8
推荐指数
1
解决办法
1万
查看次数

是否可以读取正在运行的java应用程序的内存?

我想学习如何,或者它是否可能以编程方式与黑盒java应用程序交互(通过读取其数据).有没有以前的研究/工作做这种事情?

我认为在JVM上运行会使事情变得非常复杂.

@anon:对任何JVM执行此操作都是相关的.您是否必须了解或控制JVM如何分配内存以从Java应用程序中提取数据的细节?

java memory jvm

15
推荐指数
1
解决办法
1967
查看次数

抽象类的目的/用途是什么?(寻找现实世界的例子.)

有人可以给我看一下Java中抽象类的例子吗?具有真实世界应用程序(而不是教科书样本)的东西将是更可取的.

谢谢!

java oop inheritance abstract-class

3
推荐指数
1
解决办法
3874
查看次数

这是导入驻留在任意文件夹中的python脚本的正确方法吗?

这个片段来自SO的早期答案.它大约一岁(答案未被接受).我是Python的新手,我发现系统路径真的很痛苦.我有一些用不同目录的脚本编写的函数,我希望能够将它们导入到新项目中,而不必跳过箍.

这是片段:

def import_path(fullpath):
""" Import a file with full path specification. Allows one to
    import from anywhere, something __import__ does not do. 
"""
path, filename = os.path.split(fullpath)
filename, ext = os.path.splitext(filename)
sys.path.append(path)
module = __import__(filename)
reload(module) # Might be out of date
del sys.path[-1]
return module
Run Code Online (Sandbox Code Playgroud)

它来自这里: 如何在Python中进行相对导入?

我想要一些反馈,我是否可以使用它 - 如果有任何不良副作用对新手来说可能不明显.

我打算用它这样的东西:

import_path(/home/pydev/path1/script1.py)

script1.func1()
Run Code Online (Sandbox Code Playgroud)

等等

以我打算的方式使用该功能是否"安全"?

python

9
推荐指数
1
解决办法
3996
查看次数

如何在EF CF中设置POCO的默认值?

在Entity Framework Code First方法中,如何在POCO的EntityConfiguration类中为属性设置默认值?

public class Person
{
    public int Id { get; set; }
    public string Name { get; set; }
    public DateTime CreatedOn { get; set; }
}

public class PersonConfiguration : EntityConfiguration<Person>
{
    public PersonConfiguration()
    {
        Property(p => p.Id).IsIdentity();
        Property(p => p.Name).HasMaxLength(100);

        //set default value for CreatedOn ?
    }
}
Run Code Online (Sandbox Code Playgroud)

.net entity-framework entity-framework-4 ef-code-first

46
推荐指数
4
解决办法
4万
查看次数

Firefox中的Fieldset内容溢出

我有一个关于fieldset的css问题,并想知道你是否可以提供帮助?

我有一个宽度小于其内容div宽度的字段集.

我希望fieldset显示一个水平滚动条,因为内容太宽但它只适用于IE而不是Firefox.

提前致谢.

埃里克

这是html

<fieldset style=" width:150px; overflow:scroll;" >
    <div style="width:200px; height:50px; background:red;">
        Contents...
    </div>
</fieldset>
Run Code Online (Sandbox Code Playgroud)

css overflow fieldset

4
推荐指数
1
解决办法
7549
查看次数

在Magento中进行表单验证后更改错误消息

我怎样才能更改Magento验证表单后抛出的错误消息?谢谢

forms validation magento

2
推荐指数
1
解决办法
4383
查看次数

在Notepad ++或Notepad中查看时,java类文件中的奇怪字符

我正在尝试在Notepad ++或Notepad中查看java类文件,它在.jar文件中并且我解压缩它,它有像NUL和DC1和DC2和SOH以及其他"乱码"字符的字符...是有办法解决/避免这个?

java notepad++

2
推荐指数
1
解决办法
6668
查看次数

使用前设置StringBuilder?

是否需要初始化StringBuilder变量以允许说string.empty,以防你最终没有追加任何东西而需要返回一些东西?

    public static string ToSemiColonList<T>(this IEnumerable<T> list, Func<T, string> func)
    {
        StringBuilder sb = new StringBuilder();

        foreach (T item in list)
        {
            if (sb.Length > 0)
                sb.Append(";");

            string elem = func(item);
            sb.Append(elem);
        }

        return sb.ToString();
    }
Run Code Online (Sandbox Code Playgroud)

在这种情况下,它可能永远不会进入foreach.所以我的猜测是,因为方法范围中的每个局部变量都在C#中设置为无值,将其设置为空字符串,因为如果未触及此foreach,我们需要返回一些内容.

也许最好检查一下stringbuilder长度然后如果为零,返回string.empty或者我是否会超载(做同样的工作两次)并且它很好,就像我拥有它一样?

c#

2
推荐指数
1
解决办法
3074
查看次数