我有一个非技术客户,他有一些分层产品数据,我将用Python加载到树结构中.树具有可变数量的级别,并且每个级别具有可变数量的节点和叶节点.
客户端已经知道产品的层次结构,并希望将所有内容放入Excel电子表格中供我解析.
我们可以使用哪种格式允许客户端轻松输入和维护数据,并且可以使用Python的CSV轻松解析为树?为每个级别添加一个列并不是没有打嗝(特别是如果我们引入多个节点类型)
我有一个产品目录.每个类别由不同数量(深度)的子类别组成.等级(深层)的数量是未知的,但我确信它不会超过5,6等级.数据变化很少读取.
问题是:什么类型的分层数据模型更适合这种情况.该项目基于Django框架,应该考虑它的特点(管理员i-face,模型处理......).
非常感谢!
我使用以下列运行了mill嵌套集层次结构类型设置:
表名:
myset
Run Code Online (Sandbox Code Playgroud)
列:
id, name, lft, rgt
Run Code Online (Sandbox Code Playgroud)
有没有人知道查询来确定节点的父节点?
我读了几个地方,在你的表中有一个parent_id列来跟踪这个很方便,但它似乎是多余的,如果在添加/时查询被错误地执行,它似乎可能与嵌套集不同步移除/移动集合中的任何内容.
我已经熟悉了Linq但对扩展方法了解甚少,我希望有人可以帮助我.
所以我有这个分层集合伪代码,即:
class Product
prop name
prop type
prop id
prop List<Product> children
Run Code Online (Sandbox Code Playgroud)
我有一个产品列表产品列表.
有没有什么办法可以通过id用扩展方法在这个集合中查找产品?换句话说,我需要在层次结构中的某个位置使用一个项目.
我有一个数据库,其中包含使用邻接列表模型存储的类别层次结构.
层次结构深度为3级(不包括假想的根节点),包含大约1700个节点.第二级和第三级的节点可以有多个父节点.另外一个表用于多对多关系,如下所示:
CREATE TABLE dbo.Category(
id int IDENTITY(1,1) NOT NULL,
name varchar(255) NOT NULL,
)
CREATE TABLE dbo.CategoryHierarchy(
relId int IDENTITY(1,1) NOT NULL,
catId int NOT NULL,
parentId int NOT NULL,
)
Run Code Online (Sandbox Code Playgroud)
如果我转向使用传递闭包表方法(为了数据完整性等)是否有一个相对容易的查询,我可以执行,将生成闭包表的值?(使用SQL Server 2005)
我查看文章和演示文稿,例如Bill Karwin的分层数据模型,但只有单个节点的插入查询,我需要永远创建这样的树.
谢谢.
编辑:
CategoryHierarchy表中的RelID纯粹是为了主键,它与Category表的节点ID无关.
还有闭包表,我的意思是这样一个表:
CREATE TABLE ClosureTable (
ancestor int NOT NULL,
descendant int NOT NULL,
[length] int NOT NULL,
)
Run Code Online (Sandbox Code Playgroud)
前两列是复合主键,并且是Category.id的单独外键.
有没有人知道为什么当循环发生在顶级节点(根节点连接到根节点)时,Oracle继续遵循循环循环之外的路径?更重要的是,如何预防呢?
我有Oracle 11g第2版(11.2),我一直在探索分层查询.我将围绕Oracle数据库SQL语言参考第9-4页的图9-1中的树结构构建我的问题
我使用供应商和客户的概念为这棵树创建了一个表格结构:
create table t
( vendor varchar2(3)
, customer varchar2(3)
);
insert into t values ( '1' , '2' );
insert into t values ( '2' , '3' );
insert into t values ( '2' , '4' );
insert into t values ( '4' , '5' );
insert into t values ( '4' , '6' );
insert into t values ( '1' , '7' );
insert into t values ( '7' , '8' );
insert into t …Run Code Online (Sandbox Code Playgroud) 场景.我正在写与游戏相关的代码.在那个游戏中Player(它也是一个类)有一个列表Item.还有其他类型的项继承Item,例如ContainerItem,DurableItem或WeaponItem.
显然,对我来说这是非常方便的List<Item>.但是当我获得玩家物品时,我唯一的方法是通过使用instanceof关键字来区分什么类型的物品.我敢肯定,我已经读过,依赖它是不好的做法.
在这种情况下可以使用它吗?或者我应该重新考虑我的所有结构?
我有一个类层次结构A < - B < - C,在B中,我需要在构造函数中进行一些处理,所以我从这篇文章中想出了这个代码:用__init __()方法理解Python super()
#!/usr/bin/python
class A(object):
def __init__(self, v, v2):
self.v = v
self.v2 = v2
class B(A):
def __init__(self, v, v2):
# Do some processing
super(self.__class__, self).__init__(v, v2)
class C(B):
def hello():
print v, v2
b = B(3, 5)
print b.v
print b.v2
c = C(1,2)
print c
Run Code Online (Sandbox Code Playgroud)
但是,我遇到超出最大递归的运行时错误
File "evenmore.py", line 12, in __init__
super(self.__class__, self).__init__(v, v2)
RuntimeError: maximum recursion depth exceeded while calling a Python object
Run Code Online (Sandbox Code Playgroud)
可能有什么问题?
我目前正在研究一种"代码解析器",将Valve Map Format(.vmf文件)解析为java可读对象.
在vmf文件中,
因此,我创建了一个VMFClassObject Class和一个VMFPropertyObject Class.我用自己创建的HierarchyObjects 创建了一个List ,其中包含VMFClass/ VMFPropertyObject,UUID和parentUUID.该VMFClass对象包含2只列出一个与子VMFClassES,一个具有属性.
我的问题是我不知道如何实现一个Class包含它的所有子类,因为我不知道子类有多少子类等等......
这是我的代码(Github):
HierachyObject:
package net.minecraft.sourcecraftreloaded.utils;
import java.util.ArrayList;
import java.util.HashMap;
import java.util.List;
import java.util.Map;
public class HierarchyObject {
private static Map<Long, Long> usedUUIDs = new HashMap<>();
private long parentUUID;
private long UUID;
private Object object;
/**
*
* @param Object
* @param parent -1 is maximum level
*/
public HierarchyObject(Object object, long …Run Code Online (Sandbox Code Playgroud) hierarchy ×10
sql ×3
java ×2
python ×2
recursion ×2
c# ×1
class ×1
csv ×1
cycle ×1
database ×1
django ×1
excel ×1
instanceof ×1
linq ×1
mysql ×1
nested-sets ×1
oracle11g ×1
sql-server ×1
superclass ×1
tree ×1
typescript ×1