[
https://issues.jboss.org/browse/TEIID-3040?page=com.atlassian.jira.plugin...
]
Ramesh Reddy updated TEIID-3040:
--------------------------------
Description:
TEIID-2958 has been working towards removing the IDREF fields from embedded documents. I
see no reason to represent FK in the parent table with IDREF either. This will make the
document model representation simple and aligns with how a typical developer would
design.
If the schema looks like
{code}
CREATE FOREIGN TABLE Customer (
id integer PRIMARY KEY,
firstName string,
lastName string,
email_addr string,
FORIEGN KEY (email_addr) REFERENCES Email(address)
);
CREATE FOREIGN TABLE Email (
address string PRIMARY KEY,
provider string
) OPTIONS ("teiid_mongo:MERGE" 'Customer');
{code}
Currently Teiid writes the document as
{code}
Customer
{
"_id" : 1,
"firstName" : "Ramesh",
"lastName" : "Reddy",
"email_addr" : DBRef("EMail", "abc(a)abc.com"),
"EMail" : {
"_id": "abc(a)abc.com",
"provider" : "Comcast"
}
}
{code}
change to:
{code}
customer
{
"_id" : 1,
"firstName" : "Ramesh",
"lastName" : "Reddy",
"email_addr" : "abc(a)abc.com",
"EMail" : {
"provider" : "Comcast"
}
}
{code}
was:
TEIID-2958 has been working towards removing the IDREF fields from embedded documents. I
see no reason to represent FK in the parent table with IDREF either. This will make the
document model representation simple and aligns with how a typical developer would
design.
If the schema looks like
CREATE FOREIGN TABLE Customer (
id integer PRIMARY KEY,
firstName string,
lastName string,
email_addr string,
FORIEGN KEY (email_addr) REFERENCES Email(address)
);
CREATE FOREIGN TABLE Email (
address string PRIMARY KEY,
provider string
) OPTIONS ("teiid_mongo:MERGE" 'Customer');
Currently Teiid writes the document as
{code}
Customer
{
"_id" : 1,
"firstName" : "Ramesh",
"lastName" : "Reddy",
"email_addr" : DBRef("EMail", "abc(a)abc.com"),
"EMail" : {
"_id": "abc(a)abc.com",
"provider" : "Comcast"
}
}
{code}
change to:
{code}
customer
{
"_id" : 1,
"firstName" : "Ramesh",
"lastName" : "Reddy",
"email_addr" : "abc(a)abc.com",
"EMail" : {
"provider" : "Comcast"
}
}
{code}
MongoDB: Remove the IDREF fields for the FK fields
--------------------------------------------------
Key: TEIID-3040
URL:
https://issues.jboss.org/browse/TEIID-3040
Project: Teiid
Issue Type: Enhancement
Security Level: Public(Everyone can see)
Reporter: Ramesh Reddy
Assignee: Ramesh Reddy
Fix For: 8.9
TEIID-2958 has been working towards removing the IDREF fields from embedded documents. I
see no reason to represent FK in the parent table with IDREF either. This will make the
document model representation simple and aligns with how a typical developer would
design.
If the schema looks like
{code}
CREATE FOREIGN TABLE Customer (
id integer PRIMARY KEY,
firstName string,
lastName string,
email_addr string,
FORIEGN KEY (email_addr) REFERENCES Email(address)
);
CREATE FOREIGN TABLE Email (
address string PRIMARY KEY,
provider string
) OPTIONS ("teiid_mongo:MERGE" 'Customer');
{code}
Currently Teiid writes the document as
{code}
Customer
{
"_id" : 1,
"firstName" : "Ramesh",
"lastName" : "Reddy",
"email_addr" : DBRef("EMail", "abc(a)abc.com"),
"EMail" : {
"_id": "abc(a)abc.com",
"provider" : "Comcast"
}
}
{code}
change to:
{code}
customer
{
"_id" : 1,
"firstName" : "Ramesh",
"lastName" : "Reddy",
"email_addr" : "abc(a)abc.com",
"EMail" : {
"provider" : "Comcast"
}
}
{code}
--
This message was sent by Atlassian JIRA
(v6.2.6#6264)