我知道有两种方法:邻接列表和嵌套树.据说由于大量查询,邻接列表在遍历上使用会很慢.但我不知道这方面的任何实际数字.我正在制作的网站将有200页.遍历生成(例如)站点地图需要花费超过0.3秒的时间吗?
使用LAMP堆栈在MySQL(innoDB)上运行.
如果可能的话,我更愿意实现邻接,因为设计更简单.
谢谢.
我有一个树结构的表:
id parentId name
----------------
1 0 Category1
2 0 Category2
3 1 Category3
4 2 Category4
5 1 Category5
6 2 Category6
7 3 Category7
Run Code Online (Sandbox Code Playgroud)
在SQL查询resut我需要一个像这样的表:
id parentId level name
----------------------
1 0 0 Category1
3 1 1 Category3
7 3 2 Category7
5 1 1 Category5
2 0 0 Category2
4 2 1 Category4
6 2 1 Category6
Run Code Online (Sandbox Code Playgroud)
谁能帮我写ms-sql查询?谢谢!
我有一些如下数据:
A A1 12
A A2 23
A A3 AA1 1
A A3 AA2 2
B B1 2
B B2 1
Run Code Online (Sandbox Code Playgroud)
有没有办法在ggplot中可视化这些信息?我正在寻找这样的东西:
|--A1---12
|--A2---23
A--|--A3--AA1--1
|---AA2--2
B--|--B1---2
|--B2---1
Run Code Online (Sandbox Code Playgroud)
有什么建议?
有一段时间我一直在努力解决如何最好地处理SQL中的层次结构.由于邻接列表的限制和MPTT /嵌套集的复杂性而感到沮丧,我开始考虑简单地存储密钥路径,作为一个简单的node_key/node_key/...字符串.我决定编译这三种技术的优点和缺点:
除了一个用例之外,存储的路径技术使用与每个用例中的其他技术相同或更少的调用.通过这种分析,存储路径是明显的赢家.更不用说,它实现起来要简单得多,人类可读等等.
所以问题是,不应该将存储路径视为比MPTT更强大的技术吗?为什么存储路径不是更常用的技术,为什么不在给定实例中使用它们而不是MPTT?
另外,如果您认为此分析不完整,请告诉我们.
这里至少有两件事MPTT可以开箱即用,存储的路径解决方案不会:
MyClass包括ID ParentID与List<MyClass>作为Children
我的名单MyClass像这样
ID ParentID
1 0
2 7
3 1
4 5
5 1
6 2
7 1
8 6
9 0
10 9
Run Code Online (Sandbox Code Playgroud)
输出(分层列表)为 List<MyClass>
1 __ 3
|__ 5__ 4
|__ 7__ 2__ 6__ 8
|__ 11
9 __10
Run Code Online (Sandbox Code Playgroud)
在linq中实现这一目标的最简单方法是什么?
PS:ParentID没有排序
编辑:
我的尝试:
class MyClass
{
public int ID;
public int ParentID;
public List<MyClass> Children = new List<MyClass>();
public MyClass(int id, int parent_id)
{
ID = id; …Run Code Online (Sandbox Code Playgroud) 我有一个产品目录.每个类别由不同数量(深度)的子类别组成.等级(深层)的数量是未知的,但我确信它不会超过5,6等级.数据变化很少读取.
问题是:什么类型的分层数据模型更适合这种情况.该项目基于Django框架,应该考虑它的特点(管理员i-face,模型处理......).
非常感谢!
我有一个特定的数据操作要求,我已经解决了如何在SQL Server和PostgreSQL中做.但是,我对速度不太满意,所以我正在调查MongoDB.
描述查询的最佳方法如下.描绘美国的分层数据:国家,州,县,市.假设一个特定的供应商可以为整个加州服务.另一个可能只服务于洛杉矶.可能有数十万个供应商,他们都可以从这个层次结构中的某些点进行服务.我并没有把它与Geo混淆 - 我用它来说明需要.
使用递归查询,可以很容易地获得可以为特定用户提供服务的所有供应商的列表.如果他是在说帕萨迪纳,美国加利福尼亚州洛杉矶,我们会走到层次得到应用的ID,然后查询回落,找到供应商.
我知道这可以优化.同样,这只是一个简单的查询示例.
我知道MongoDB是一个文档存储.这非常适合我的其他需求.问题是它对我描述的查询类型有多适合?(我知道它没有连接 - 这些是模拟的).
我知道这是一个"一段字符串多长时间"的问题.我只是想知道是否有任何人有使用MongoDB做这种事情的经验.从0到测试可能需要一段时间,如果MongoDB不适合这个,我希望节省时间.
例
当地的电影商店"A"可以在斯普林菲尔德供应Blu-Rays.具有全州分布的连锁店"B"可以向所有IL提供Blu-Rays.按需下载商店"C"可以供应给所有美国用户.
如果我们想要获得伊利诺斯州斯普林菲尔德的所有适用电影供应商,那么答案将是[A,B,C].
换句话说,在层次结构上有许多不同级别的供应商.
我正在开始一个有一些分层数据的新项目,我正在查看目前存储在数据库中的所有选项.
我正在使用PostgreSQL,它允许递归查询.我还研究了关系数据库的设计模式,比如闭包表,我看了一下图形数据库解决方案,比如neo4j.
我发现很难在这些选项之间做出决定.例如:假设我的RDBMS允许递归查询,那么使用闭包表是否仍然有意义?在可维护性和性能方面,它与图数据库解决方案相比如何?
任何意见/经验将不胜感激!
postgresql rdbms hierarchical-data neo4j transitive-closure-table
我试图找到任何深度的特定领域的所有父母,祖父母等.例如,给定以下结构,如果我提供5,则返回的值应为1,2,3和4.
| a | b |
-----------
| 1 | 2 |
| 2 | 3 |
| 3 | 4 |
| 4 | 5 |
| 3 | 6 |
| 4 | 7 |
Run Code Online (Sandbox Code Playgroud)
我该怎么做?
我想从目标目录中读取多个CSV文件(具有不同数量的列)到单个Python Pandas DataFrame中,以便有效地搜索和提取数据.
示例文件:
Events
1,0.32,0.20,0.67
2,0.94,0.19,0.14,0.21,0.94
3,0.32,0.20,0.64,0.32
4,0.87,0.13,0.61,0.54,0.25,0.43
5,0.62,0.21,0.77,0.44,0.16
Run Code Online (Sandbox Code Playgroud)
这是我到目前为止:
# get a list of all csv files in target directory
my_dir = "C:\\Data\\"
filelist = []
os.chdir( my_dir )
for files in glob.glob( "*.csv" ) :
filelist.append(files)
# read each csv file into single dataframe and add a filename reference column
# (i.e. file1, file2, file 3) for each file read
df = pd.DataFrame()
columns = range(1,100)
for c, f in enumerate(filelist) :
key = "file%i" % c …Run Code Online (Sandbox Code Playgroud)