是否有可能在MySQL 数据库Neo4j中创建/删除不同的数据库?或者,至少,如何删除现有图形的所有节点和关系以获得测试的干净设置,例如,使用类似于rmrel或的shell命令rm?
任何人都可以提供或指出Neo4j和Titan之间的良好比较?我可以看到的一点是规模 - Titan是横向扩展,需要像cassandra这样的基础可扩展数据存储.Neo4j仅适用于HA,并拥有自己的嵌入式数据库.还有其他优点和缺点吗?任何特定的用例.(Titan目前在哪里使用?)
我还有以下链接:http://architects.dzone.com/articles/16-graph-databases-compared,它给出了图形数据库的客观比较,但没有太多关于Neo4j和Titan之间的利弊.
关于核心数据关系删除规则,我有点模糊.所以如果有人能帮我回答一些关于他们的问题.
我有实体A和B.A与B有to-Many关系,B与A有to-One关系.
A <--- >> B
现在,如果我将删除规则设置为A到Cascade,我知道它会删除与之相关的所有B.但是如果我将它设置为Nullify,它会将Bs设置为NIL还是将外键设置为Nil?
我到处看看从B到A的关系,我应该把它设置为Nullify吗?这只会在A处剔除"B对象"吗?或者它会否使与A相关的所有B都无效?Cascade怎么样?它会删除与A关联的所有B,还是只删除特定的B?
或者我只是对从B到A的关系使用"无操作",这样当我删除B时,A不会发生变化,但是对B的引用将不存在?
我很担心这些,所以请原谅我的问题.
谢谢.
在Hibernate或其他ORM中实现复合主键时,最多有三个位置将insertable = false,updatable = false放在使用标识关系的复合主键星座中(FK是PK的一部分):
第三种是使用@IdClass和JPA 1.0 AFAIK的唯一方法.请参阅http://en.wikibooks.org/wiki/Java_Persistence/Identity_and_Sequencing#Primary_Keys_through_OneToOne_Relationships.我只会考虑案例1.和2.
问:将"insertable = false,updatable = false"置于一般的首选位置是哪种方式?
我遇到过关于这个问题的Hibernate问题.例如,Hibernate 3.5.x会抱怨Zips表
CREATE TABLE Zips
(
country_code CHAR(2),
code VARCHAR(10),
PRIMARY KEY (country_code, code),
FOREIGN KEY (country_code) REFERENCES Countries (iso_code)
)
Run Code Online (Sandbox Code Playgroud)
有:
org.hibernate.MappingException: Repeated column in mapping for entity: com.kawoolutions.bbstats.model.Zip column: country_code (should be mapped with insert="false" update="false")
org.hibernate.mapping.PersistentClass.checkColumnDuplication(PersistentClass.java:676)
org.hibernate.mapping.PersistentClass.checkPropertyColumnDuplication(PersistentClass.java:698)
...
Run Code Online (Sandbox Code Playgroud)
如您所见,country_code列是PK和FK.这是它的类:
实体类:
@Entity
@Table(name = "Zips")
public class Zip implements Serializable
{
@EmbeddedId
private ZipId id;
@ManyToOne …Run Code Online (Sandbox Code Playgroud) 简化,我有以下类结构(在单个文件中):
Base = declarative_base()
class Item(Base):
__tablename__ = 'item'
id = Column(BigInteger, primary_key=True)
# ... skip other attrs ...
class Auction(Base):
__tablename__ = 'auction'
id = Column(BigInteger, primary_key=True)
# ... skipped ...
item_id = Column('item', BigInteger, ForeignKey('item.id'))
item = relationship('Item', backref='auctions')
Run Code Online (Sandbox Code Playgroud)
我从这里得到以下错误:
sqlalchemy.exc.InvalidRequestError
InvalidRequestError: When initializing mapper Mapper|Auction|auction, expression
'Item' failed to locate a name ("name 'Item' is not defined"). If this is a
class name, consider adding this relationship() to the Auction class after
both dependent classes have been …Run Code Online (Sandbox Code Playgroud) 我试图找出关系和删除选项.
我有两个表,User并且UserStaff从1 User到n的关系UserStaff(用户可以有多个工作人员).
当我User被删除时,我想删除UserStaff与之关联的所有表User.当我UserStaff被删除时,我不希望发生任何事情User.我知道这是一种级联关系,但我不确定哪种方式.
即,我是否在我的UserStaff表中选择现有的外键并使其级联,或者我是否创建了一个新的外键User并将其设置为级联?
使用CakePHP:
我有多对一的关系,让我们假装它是很多叶子到树.当然,我烘焙了一个表单来向树中添加一个Leaf,你可以使用表单助手创建的下拉框(标记)指定它是哪个树.
唯一的一点是,SELECT框始终默认为Tree#1,但我希望它默认为它被添加到的树:
例如,调用example.com/leaf/add/5将调出接口以向树#5添加新的Leaf.Leaf.tree_id默认为"Tree 5" 的下拉框,而不是它当前默认为"Tree 1".
我需要在Leaf控制器和Leaf view/add.ctp中执行此操作吗?
我有以下实体(仅显示相关映射):
@Entity
@Table(name = "PQs")
public class PQ implements Serializable
{
@Id
@GeneratedValue(strategy = GenerationType.IDENTITY)
@Column
private Integer id;
@Column
private String name;
@ManyToOne(fetch = FetchType.LAZY) // lazy XToOne
@JoinColumn(name = "user_id", referencedColumnName = "person_id")
private User user;
@OneToOne(mappedBy = "pq", fetch = FetchType.LAZY) // lazy XToOne
private Group group;
@OneToOne(mappedBy = "pq", fetch = FetchType.LAZY) // lazy XToOne
private Tendering tendering;
...
}
Run Code Online (Sandbox Code Playgroud)
请注意上面的注释:@XToOne与其他实体有三种关系:
用户(具有简单ID作为PK的SecurityIdentity子类,由PQ表示所有者):
@Entity
@Table(name = "Users")
@DiscriminatorValue(value = "user")
public class User extends …Run Code Online (Sandbox Code Playgroud) 这是一个设置我的问题的例子.我有一个包含'盒子'的模型,他们有一个REST端点:
/boxes,
/boxes/{boxId}
该模型还包含"节点":
/nodes,
/nodes/{nodeId}
节点可以位于框的边界上,这是一种多对多关系.让一个节点位于多个边界上是一种表示这些边界(部分)重叠的方式,但节点也有其他用途.
我正在尝试确定如何以非令人惊讶的RESTful方式对其进行建模.我可以看到几种方法来做到这一点.但我不确定应该使用哪个:
模型/borders作为具有自己的端点的完全成熟的实体类型.有框参考四个边框(顶部,底部,左侧,右侧).边框引用节点列表.让节点引用边框列表.
/boxNodeRelationships具有自己的端点的模型,并且每个这样的关系指向一个框,一个节点,并包含一个"边框"字段(一个带有四个选项的枚举).
两者都很相似,而且相当"重".另一种选择是更专注:
{ border, node }对象列表.为节点提供{ box, border }对象列表.这些对象将从GET调用返回,并期望从POST/ PUT调用返回,但不会是具有端点的完全成熟类型.我想知道RESTifarian如何解决这个问题,以及听取这些方法的一些优点/缺点.我还想知道是否有其他方法根本不同.
有没有办法合并laravel中的两个关系?
这就是它现在设置的方式,但是有没有办法让两者合并?
public function CompetitionsHome() {
return $this->HasMany( 'Competition', 'home_team_id' );
}
public function CompetitionsGuest() {
return $this->HasMany( 'Competition', 'guest_team_id' );
}
public function Competitions() {
// return both CompetitionsHome & CompetitionsGuest
}
Run Code Online (Sandbox Code Playgroud) relationships ×10
hibernate ×2
java ×2
jpa ×2
neo4j ×2
php ×2
cakephp ×1
cakephp-2.x ×1
core-data ×1
database ×1
eloquent ×1
foreign-keys ×1
graph ×1
helpers ×1
ios ×1
laravel-4 ×1
lazy-loading ×1
metadata ×1
mysql ×1
nodes ×1
nosql ×1
objective-c ×1
pyramid ×1
python ×1
rest ×1
sql-delete ×1
sqlalchemy ×1
swift ×1
titan ×1