[teiid-issues] [JBoss JIRA] (TEIID-3040) MongoDB: Remove the IDREF fields for the FK fields

Ramesh Reddy (JIRA) issues at jboss.org
Wed Jul 30 09:32:29 EDT 2014


     [ https://issues.jboss.org/browse/TEIID-3040?page=com.atlassian.jira.plugin.system.issuetabpanels:all-tabpanel ]

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 at abc.com"),
	"EMail" : {
                 "_id": "abc at abc.com",
		"provider" : "Comcast"
	}
}
{code}

change to:

{code}
customer
{
	"_id" : 1,
	"firstName" : "Ramesh",
	"lastName" : "Reddy",
	"email_addr" :  "abc at 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 at abc.com"),
	"EMail" : {
                 "_id": "abc at abc.com",
		"provider" : "Comcast"
	}
}
{code}

change to:

{code}
customer
{
	"_id" : 1,
	"firstName" : "Ramesh",
	"lastName" : "Reddy",
	"email_addr" :  "abc at 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 at abc.com"),
> 	"EMail" : {
>                  "_id": "abc at abc.com",
> 		"provider" : "Comcast"
> 	}
> }
> {code}
> change to:
> {code}
> customer
> {
> 	"_id" : 1,
> 	"firstName" : "Ramesh",
> 	"lastName" : "Reddy",
> 	"email_addr" :  "abc at abc.com",
> 	"EMail" : {
> 		"provider" : "Comcast"
> 	}
> }
> {code}



--
This message was sent by Atlassian JIRA
(v6.2.6#6264)


More information about the teiid-issues mailing list