定义与另一个表具有可选外键关系的oracle表的正确方法是什么?例如,一些员工记录已经定义了他们所在的国家(国家表中的FK),而有些则没有.
任何人都可以说某种方法将SQL代码转换为ERD等数据图表吗?对于像MySQL或一般SQL的som DBMS
我有两个链接的表n-n.我有一个方法,需要一个对象并保存.
public int Save(Table1 element)
{
using (var database = new Entities())
{
if (element.ID == 0)
{
database.Table1.AddObject(element);
}
else
{
database.Attach(element); //
database.ObjectStateManager.GetObjectStateEntry(element).SetModified();
database.Refresh(RefreshMode.ClientWins, element);
}
return database.SaveChanges();
}
}
Run Code Online (Sandbox Code Playgroud)
当我不尝试修改obj1.Table2它附加和保存成功.但如果我试着修改这个EntityCollection
element.Table2.Add(tb2);
Run Code Online (Sandbox Code Playgroud)
并保存,我收到以下错误:
具有临时EntityKey值的对象无法附加到对象上下文.
在线: database.Attach(element);
我该如何解决?
数据库:
Table 1 Table 2
ID | Name ID | Name
--------- -------------------
1 | One 1 | Related to One
2 | Two 2 | Related to One
3 | Three
Table 3
Tb1 | …Run Code Online (Sandbox Code Playgroud) 我试图在一个看起来像这样的方法中查询:
Public Shared Function listParticipationsByTeamCount(ByVal count As Integer, ByVal challenge As Challenge) As List(Of Participation)
Dim participationList As List(Of Participation)
If count <> Nothing And challenge IsNot Nothing Then
Using db As New DatabaseEntities()
participationList = db.Participations.Where(Function(x) x.TeamCount = count And x.Challenge.Id = challenge.Id).OrderByDescending(Function(x) x.TeamCount).ThenBy(Function(x) x.Team.Name).ToList()
End Using
End If
Return participationList
End Function
Run Code Online (Sandbox Code Playgroud)
我有一个Participation表,它在Participation和Team表之间有多对一的关系,并且Participation和TeamMember表之间有多对多的关系.在我的标记页面上,当我迭代遍历列表时,我会尝试这样的事情:
<% For Each participation As Participation In participationsList%>
<tr>
<td><a class="external-link" href="<%= participation.Team.Website %>"><%= participation.Team.Name%></a></td> …Run Code Online (Sandbox Code Playgroud) .net entity-relationship entity-framework entity-framework-4
您好使用SQL Server 2008,
我为棒球联盟建立了一个小型数据库,我在创建团队(PK:TeamID)和GameSchedule(PK:GameID,FK1:HomeTeamID,FK2:AwayTeamID)之间的关系时遇到了问题
我想创建GameSchedule HomeTeamID,AwayTeamID和团队(TeamID)之间的关系
每当我尝试这样做时,我都会收到错误:( TeamID已经是团队中的主键)
'团队'表成功保存'GameSchedule'表 - 无法创建关系'FK_GameSchedule_Teams'.
ALTER TABLE语句与FOREIGN KEY约束"FK_GameSchedule_Teams"冲突.冲突发生在数据库"sll_2009",表"dbo.Teams",列'TeamID'中.
我有一个Core Data模型代表iOS 4+上的电视指南,有3个类:
Channel (BBC 1)Program (最高档)Broadcast (周一晚上8点BBC 1的Top Gear)我有大约40个频道,8000个节目和6000个广播,我想微调导入过程,这样它不需要花一分钟才能运行.
导入频道和节目很容易,因为它们是独立的对象.然而,广播与频道和节目(1对多)有关系,并且频道和节目都与广播(多对1)具有反向关系.为了加快速度,我有一个故障通道的内存字典和只预取了Web服务标识符的程序:我创建一个广播并查看两个字典,以获得相应的通道和程序,而无需往返数据库.
但是当我将节目或频道分配给广播时,频道和节目的反向关系访问会立即触发两个对象的故障,导致大量减速(6000*2请求)和随之而来的内存压力,如核心数据故障所示仪器报告.我尝试broadcasts在两个频道和节目上预先获取关系,但这种关系仍然存在问题.
你知道为什么反向关系被访问并且他们的父母有错吗?保存关系时如何避免从数据库中读取?
更新:示例代码,我的Broadcast实例的分配/更新方法.该dictionary变量来自Web服务,channels并programs包含由Web服务标识符索引的故障通道和程序对象.断层发生在self.program = program和self.channel = channel线上.
- (BOOL)assignWithDictionary:(NSDictionary *)dictionary channels:(NSDictionary *)channels programs:(NSDictionary *)programs {
// Add channel relationship
NSNumber *channelIdentifier = [dictionary objectForKey:@"channel_id"];
if (self.channel == nil || ![self.channel.identifier isEqualToNumber:channelIdentifier]) {
Channel *channel = [channels objectForKey:channelIdentifier];
if (channel == nil) {
NSLog(@"Broadcast %@ has invalid channel: %@", identifier, channelIdentifier);
return NO; …Run Code Online (Sandbox Code Playgroud) 我有两个MongoDB集合user,customer它们是一对一的关系.我是MongoDB的新手,虽然我安装了Mongoose,但我正在尝试手动插入文档.我不确定哪种是在MongoDB中存储文档引用的正确方法.
我正在使用规范化数据模型,这是我的Mongoose模式快照customer:
/** Parent user object */
user: {
type: Schema.Types.ObjectId,
ref: "User",
required: true
}
Run Code Online (Sandbox Code Playgroud)
{
"_id" : ObjectId("547d5c1b1e42bd0423a75781"),
"name" : "john",
"email" : "test@localhost.com",
"phone" : "01022223333",
}
Run Code Online (Sandbox Code Playgroud)
我想user从customer文档中引用这个文档.以下哪项是正确的 - (A)或(B)?
{
"_id" : ObjectId("547d916a660729dd531f145d"),
"birthday" : "1983-06-28",
"zipcode" : "12345",
"address" : "1, Main Street",
"user" : ObjectId("547d5c1b1e42bd0423a75781")
}
Run Code Online (Sandbox Code Playgroud)
{
"_id" : ObjectId("547d916a660729dd531f145d"),
"birthday" : "1983-06-28",
"zipcode" : "12345",
"address" …Run Code Online (Sandbox Code Playgroud) 在我的应用程序中,我想在不丢失数据的情况下将一对多转换为多对多:
从:
/**
* @ORM\ManyToOne(targetEntity="\AppBundle\Entity\FoodAnalytics\Recipe", inversedBy="medias")
* @ORM\JoinColumn(name="recipeId", referencedColumnName="id", onDelete="CASCADE")
*/
protected $recipe;
Run Code Online (Sandbox Code Playgroud)
至:
/**
* @ORM\ManyToMany(targetEntity="\AppBundle\Entity\FoodAnalytics\Recipe", inversedBy="medias")
* @ORM\JoinTable(
* name="media_recipes",
* joinColumns={@ORM\JoinColumn(name="mediaId", referencedColumnName="id", onDelete="CASCADE")},
* inverseJoinColumns={@ORM\JoinColumn(name="recipeId", referencedColumnName="id", onDelete="CASCADE")}
* )
*/
protected $recipes;
Run Code Online (Sandbox Code Playgroud)
当我抛弃我的学说谢谢更新时,它说它会丢弃数据,而不是我想要的:
CREATE TABLE media_recipes (mediaId INT UNSIGNED NOT NULL, recipeId INT UNSIGNED NOT NULL, INDEX IDX_C2BE64FC27D9F5AC (mediaId), INDEX IDX_C2BE64FC6DCBA54 (recipeId), PRIMARY KEY(mediaId, recipeId)) DEFAULT CHARACTER SET utf8 COLLATE utf8_unicode_ci ENGINE = InnoDB;
ALTER TABLE media_recipes ADD CONSTRAINT FK_C2BE64FC27D9F5AC FOREIGN KEY (mediaId) REFERENCES media (id) ON …Run Code Online (Sandbox Code Playgroud) 我有两个具有外键关系的实体:product和category。
@Entity(primaryKeys = "id")
public class Product {
public final long id;
@NonNull
public final String name;
@ForeignKey(entity = Category.class, parentColumns = "id", childColumns = "categoryId")
public final long categoryId;
public Product(long id, @NonNull String name, long categoryId) {
this.id = id;
this.name = name;
this.categoryId = categoryId;
}
}
@Entity(primaryKeys = "id")
public class Category {
public final long id;
@NonNull
public final String name;
public Category(long id, @NonNull String name) {
this.id = id; …Run Code Online (Sandbox Code Playgroud) database ×3
mysql ×2
sql ×2
.net ×1
android ×1
android-room ×1
c# ×1
core-data ×1
doctrine ×1
doctrine-orm ×1
foreign-keys ×1
ios ×1
iphone ×1
mongodb ×1
oracle ×1
sql-server ×1
symfony ×1