AWM - many-to-many relationship into a hierarchy of levels
Hi, I use awm 11.2 and the problem is, how to create the relationship in this case:I have a customer dimension with a hierarchy that has the following levels:
1. women
2 date_of_birth
3 countries
4 city
5 adresse_rue
6 first_last_name
Problem is the relationship between sex and date of birth, because they have the same number of dates of birth sex and vice versa.
Is it possible to do in MN and how?
Thank you
Basically, you're right, but it still isn't a solution, if we have a case as I wrote.
You can make your design work if you make each Member map to exactly one parent. Dates of birth must roll for exactly one sex. In other words, for the date of birth 01/01/1980 you will need a male and female version: M_1/1/1980 and F_1/1/1980. Everyone can have a description of 01/01/1980 or "1 January 1980" or whatever you want, so that they can be combined. But the value of full member must be different.
So, technically, you have a solution to force it to work, but I still don't see how this particular dimension made a lot of sense as expected.
Tags: Business Intelligence
Similar Questions
-
Is an extra Associative entity automatically created when we do a lot of many relationships?
Hello
I use SQL DEVELOPER DATA MODELER Version 4.0.2.840.
My question is when we create many to-many between two main entities let PRODUCT and SALES (master). then we want to create a table associative entity SALES_DETAIL (details of sales)
Is there an option that allows me to create an associative entity automatically with two associations of old masters. As it is automatically created with TOAD DATAMODELER.
Thank you.
Hello
many-to-many relationship is transformed into associative array / intersection during the engineering to the relational model. If you add attributes to the relationship that they will turn to the columns of this table. Use "Show > attributes of the relationship" in the context menu of the diagram so that they are visible on the diagram.
Philippe
-
How to create the Group of cache for many to many relationship tables?
Hi, Chris,.
Page 4-4 < < the user manual of the Oracle Database Cache in memory > > there is a saying,
A child table cannot reference multiple parent tables.
If there is a many-to-many relationship table in Oracle and I want to cache in TT, there is not a la carte approach that?
Or I have to logically break his references to the two tables in one of them?
I forgot to mention that I have a root table and one of its child tables is a many-to-many relationship table.Yes, that's correct. You can not exactly this model in TimesTen. You to omit some of the relationships so that things are defined in TimesTen as a pure parent/child relationship. You can also consider putting the tables into groups separate cache. Of course, there are consequences to this:
1. the 'missing' relationship cannot be run by TimesTen. The application must respect/run it. If this is not some updates may not to be propagated to Oracle if they violate the relationship in Oracle.
2 If the parallel AWT is configured (to improve the performance of spread) it will not be used for all tables where they lack of relationships. All updates to the tables in the order will apply.
Chris
-
With a many to many relationship data in a table - recursive sql?
Hello
I'm trying to group data associated with a many to many relationships in a number of unique group using SQL only. The table looks like this.
AMOUNT OF THE CHECK PLAN
1 10
A 15 2
2 11 B
3 12 B
4 13 B
4 16 C
5 17 D
The result should look like this. Since A is linked to 2, 1 and 2 correspond to the B and B are related to 3 and 4, 4 is related to C, these lines should be considered as a group. Any direction on where I should start looking for or if there is no function of Oracle that will be much appreciated. The version of oracle's 10g.
CHECK THE PLAN AMOUNT GROUPID
1-10-1
2-15-1
2 11 1 B
3 12 1 B
1 13 4 B
4-16-1 C
5 17 2 D
CREATE THE TABLE PAS_DBA. GRPDEL
(
CHECKID VARCHAR2 (5 BYTE),
PLAN OF INTEGER,
AMOUNT NUMBER (6.2)
);
TOGETHER TO DEFINE
Insert into PAS_DBA. GRPDEL
(CHECKID, PLAN, SUM)
Values
('A', 1, 10);
Insert into PAS_DBA. GRPDEL
(CHECKID, PLAN, SUM)
Values
('A', 2, 15);
Insert into PAS_DBA. GRPDEL
(CHECKID, PLAN, SUM)
Values
("B", 2, 11);
Insert into PAS_DBA. GRPDEL
(CHECKID, PLAN, SUM)
Values
("B", 3, 12);
Insert into PAS_DBA. GRPDEL
(CHECKID, PLAN, SUM)
Values
("B", 4, 13);
Insert into PAS_DBA. GRPDEL
(CHECKID, PLAN, SUM)
Values
("C", 4, 16);
Insert into PAS_DBA. GRPDEL
(CHECKID, PLAN, SUM)
Values
(A ', 5, 17);
COMMIT;Hello
Good thing you're uisng Oracle 10. I don't think you could do this in pure SQL using any earlier version, but the CONNECT BY NOCYCLE feature, introduced in Oracle 10, makes this possible.
WITH got_groupname AS ( SELECT checkid, plan, amount , MIN (CONNECT_BY_ROOT checkid) AS groupname FROM grpdel CONNECT BY NOCYCLE ( checkid = PRIOR checkid AND plan != PRIOR plan ) OR ( checkid != PRIOR checkid AND plan = PRIOR plan ) GROUP BY checkid, plan, amount ) SELECT g.* , DENSE_RANK () OVER (ORDER BY groupname) groupid FROM got_groupname g ORDER BY checkid , plan ;
Output:
CHECK PLAN AMOUNT GROUPNAME GROUPID ----- ---- ------ --------- ------- A 1 10 A 1 A 2 15 A 1 B 2 11 A 1 B 3 12 A 1 B 4 13 A 1 C 4 16 A 1 D 5 17 D 2
You did not ask the groupname column, but I realized just to help show how it works. The subquery got_groupname associates each checkid with each other the checkid, regardless how many not deleted the two lines are. MIN finds the lowest checkid that each is bound, which generates a unique group identifier. Personally, I sould like usage of groupname as identifier. It tells you in the blink of an eye that B is a member of the same group has. However, it is not the same as that of a certain number, so if you need a number, you can derive from groupname with the analytical DENSE_RANK function.
In many versions of Oracle, CONNECT BY queries do not work properly if they contain functions analyric. I don't know if this is the case in your version, but I don't think it's worth taking a chance. By CONNECT BY in a subquery no analytical function and then by the analytical function in a super-requete, we eliminate any chance of such a conflict.Thanks for posting the CREATE TABLE and INSERT statements; It is very useful.
You want to be more useful? Do not publish the name of schema, PAS_DBA. Not many people who want to help you have a schema called PAS_DBA, and they probably won't create a. He probably doesn't. ' t help, either; probably, you connect PAS_DBA to create the table in any case. -
many-to-many relationship, recording is not linktable
Got a little a legacy application that previously had flushAtRequestEnd set to true. We have knocked down the flag, and now our many-to-many relationships do not work properly. Save individual records very well, BUT the link table records are not created. Here's how the entities are essentially in place.
persistent component = "true" table = {'encounters'
...
property
name = "CaseFollowUps".
SingularName = "CaseFollowUp".
FieldType = "many-to-many.
CFC = "FollowUp_NEW."
LinkTable = "EncounterFollowUp."
fkcolumn = "EncounterID."
inversejoincolumn = "FollowUpID;
....
public function addCaseFollowUp (fu) {} void
ArrayAppend (variables. CaseFollowUps, fu);
arguments.fu.addEncounter (this);
}
...
}
persistent component = "true" table = {'FollowUp_NEW'
property
name = 'encounters '.
SingularName = "meeting".
FieldType = "many-to-many.
CFC = "meeting".
LinkTable = "EncounterFollowUp."
fkcolumn = "FollowUpID.
inversejoincolumn = "EncountersID";
}
I call the practical method of "addCaseFollowUp" a pre-existing meeting within a transaction. No error thrown. I see this code of Hibernate for the insertion of the FollowUp_NEW registration:
Insert
in
FollowUp_NEW
(Note, UserDateTime, UpdateDateTime, CreateDateTime, DispositionID, FollowUpRequestID, CommunicationTypeID, username)
values
(?, ?, ?, ?, ?, ?, ?, ?)
But I don't see a request to Hibernate for the insertion of the EncounterFollowUp record.
Suggestions?
pnahtanoj wrote:
But I don't see a request to Hibernate for the insertion of the EncounterFollowUp record.
Is it perhaps a query that updates EncounterFollowUp? If there is nothing, then run the code as one only. This woud the fact rule the ORM session ended prematurely.
-
Cascading list of values with a many-to-many relationship
Hi all
I have three paintings; semester, subject and half of subject. Each semester has a lot of topics and a subject can be taught in several semesters.
create table semester( id number not null, name varchar2(50) not null, primary key(id) ); create table subject( id number not null, name varchar2(50) not not null, primary key(id) ); create table semester_subject( id number not null, semester_id number not null, subject_id number not null, primary key(id), foreign key(semester_id) references semester(id), foreign key(subject_id) references subject(id), constraint semester_subject_uq unique(semester_id, subject_id) );
EDIT: I have a page with a report that shows all students who are currently enrolled in the selected for the selected session object.
There are two selection lists at the top of the report, one for the half and the other for the subject.
What I try to do is when you select a semester in the half selection list, the topic selection list should contain only the subjects for the half of some (not all) in the subject of the painting.
h
If the relationship was of 1 to many that I could write to see half of value
select name, id from semester order by 1
and for the purpose of value list
select name, id from subject where semester_id = :PX_SEMESTER
But now that the relationship depends on the table of semester_subject, I can't find a way to achieve this and Googling has not helped.
Thanks in advance for any help.
I believe that this issue has also been implemented on stack overflow plsql - list of values cascading with many-to-many relationship - stack overflow and received a very wide response. If the OP has not yet verified, he may want to.
(FYI: I'm not the person who answered there.)
-
How to implement many of many relationships?
I've been google searching for articles on the implementation of many-to-many relationships and find as many hits I'm swamped.
Someone at - he preferred an article on this topic?
In my example, I have a number to-many between the table 'user' and 'project' of the table.
Why do some articles indicate that the primary key of the table of links 'UserProject' contains two foreign keys for 'user' and 'project '? If we want to find all projects for a given "user.id", we not specifying the "project.id". It will not be reduced in a linear search then?
I thought we should receive the 'fk_user' foreign key as the primary key and create an index of the "fk_project" (or vice versa). So if we specify the "user.id" we can quickly find all the corresponding values of 'project.id '.
There are oracle-specific issues I should know about?
Thank you
SiegfriedAs you guessed, a primary key is intended to preserve the unique character.
If you have a composite primary key, so if you provide columns in the predicate (where clause) that are the primary key columns, then they can help you with an effective search.If you have a requirement that you have aquery that always uses the 2nd and 3rd in the columns of the primary key, but never the first column, then you might want to add a composite index on these two columns.
Remove the referential integrity of a production database is pretty much one of the worst things you can do.
Think about the consequences: you'll have records of children who do not have a parent record or worse have the incorrect parent record. It is best to not leave a record get in the database to allow incorrect data.Incorrect data are a nightmare to fix, as its very difficult to find the source, and worse still, it can remain unnoticed for years.
Your mantra should be to avoid bad data in the database. This by applying constraints at the level of the database.
This means that all data entered with conform to these rules. -
How to handle many-to-many relationship
Hello friends,
I'm confused, how do many many relationships in my application:
I have agents and projects of two tables.
Each agent can manage several projects.
Each project can be handled by several agents.
Example of table INIT_PROJECT:
Example of table INIT_AGEN:ID , PROJECT 1 , X Tower 2 , Y Tower 3 , Z Tower
What is the correct way to join or to represent the relationship between the two tables to get a table that servers as a lookup table also:ID , Agent 1 , A 2 , B 3 , C
is - it to be like this:
Example 1 in new_table
or is it:Project_ID , Project_name, handled_by1, handled_by2, handled_by3, handled_by4 1 , X tower , A , B
Then, on a FORM I have lists of values.ID , Project_name, handled_by 1 , X tower , A 2 , X tower , B 3 , X tower , C 4 , Y tower , A 5 , Y tower , B ........ .....
Projects and Agents.
When the user selects a project, he or she can only see the agents engaged in this project in the list of Agents of values.
I use a shuttle box for inserting the values "managed by".
Or do like this:
Example 2 of new_table
I have two lists of values:ID , PROJECT,...,HANDLED_BY 1 , X Tower,... ,A:B:C:D 2 , Y Tower,... ,A:F:G:I 3 , Z Tower,... ,F:A:I:W
'Project name' and 'Agent '.
When the user selects a project, then he must see only the values of the handled_by that are associated with this project only.
I used this query to prepare the values in the list of officers of the value
Can you please advice what is the right way?SELECT distinct REGEXP_SUBSTR(handled_by, '[^:]+', 1, LEVEL) d , REGEXP_SUBSTR(handled_by, '[^:]+', 1, LEVEL) r FROM ( SELECT project, ROWNUM AS id , handled_by FROM projects ) where project = :P8_project CONNECT BY INSTR(handled_by, ':', 1, LEVEL-1) > 0 AND id = PRIOR id AND PRIOR DBMS_RANDOM.VALUE IS NOT NULL;
Best regards
FatehSomone was asked once to use the relation tables in that many many cases and I used it since with no problems until now.
To apply in your case, I therefore project table, agent and a relationship table call PROJECT_AGENT_R which has
(1) project
(2) Agent_IDThe primary key for each table as a foreign key.
You can update the relationship via process page in your table when after you have created a project for an agent.
Do not use string concatenated as your code above as it can be annoying and not really a good practice.
-
Read the article here...
http://www.databaseprimer.com/relationship_1tox.html
To illustrate the one-to-many relationship consider the table of sampling plan and data below:
authors table
============
author_id (primary key)
LastName
FirstName
book_id (foreign key - link to table books book_id)
table Books
===========
book_id (primary key)
title
then how the data on the "authors" table columns 'author_id' and 'book_d '?author_id lastname firstname -> book_id title --------- -------- --------- -> ------- ------ 0001 henry john -> 0001 a database primer 0002 building datawarehouse 0003 teach yourself sql 0002 johnson mary -> 0004 101 exotic recipes 0003 bailey harry -> 0005 visiting europe 0004 smith adam
don't know how to frame the table 'authors '...
It would become the relation 1-1... is it normal?
Please help how data will be in the "authors" table
Thank youYou do not want to have a database template that you have illustrated below. Why? Well to start tt does not pass even the first normal form. Secondly, if you had ever updated the author's name, you will need to update in several places, which could lead to problems of data integrity. A database designed to reduce redundancy, the structure that you have proposed increases it.
If you had been modelling a one-to-many relationship, it would be more appropriate:
CREATE TABLE authors ( author_id NUMBER PRIMARY KEY , last_name VARCHAR2(200) NOT NULL , first_name VARCHAR2(200) NOT NULL ); CREATE TABLE books ( book_id NUMBER PRIMARY KEY , title VARCHAR2(200) ); CREATE TABLE authors_of_books ( author_id NUMBER NOT NULL REFERENCES authors(author_id) , book_id NUMBER NOT NULL PRIMARY KEY REFERENCES books(book_id) );
This models your one-to-many relationship with a "join" table or "bridge." The drawing above gives you the ability to change the author freely or to book the title attributes in the same place increases your data integrity.
However, a many-to-many relationship may be more appropriate since multiple authors can write a book. So you would change the tables authors_of_books as follows:
CREATE TABLE authors_of_books ( author_id NUMBER NOT NULL REFERENCES authors(author_id) , book_id NUMBER NOT NULL REFERENCES books(book_id) , CONSTRAINT authors_of_books_pk PRIMARY KEY (author_id, book_id) );
I hope this helps!
-
How to display a many-to-many relationship?
Hello
I wonder how would you present the master-detail-data of an n: m-relationship in the ADF?
Suppose we have a table x and a y in the table, the xy table is our cross refrence table.
I know that you could represent the realtionship via associations and display links, it is not clear to me how to display the detail data but I don't want to show the features of the cross-reference-table (xy).
Instead, the data in the table there should be presented as details of table x.
I hope you understand what I'm shooting.
Thanks in advance.This can help you
http://mjabr.WordPress.com/2011/05/21/how-to-implement-many-to-many-Association/ -
Modeling of a many-to-many relationship in a dimension
Hi, I use AWM and I need to create a dimension of book which includes books on their authors.
My table is: BRIDGE_TABLE_BOOKS (book_key, author_key)
Its data are for example:
Book - author
1 - 1
1 - 2
2 - 1
3 - 2
4 - 1
4 - 2
5 - 1
because a book can be written by 1 or more authors.
I wish that AWM could aggregate them with authors as follows:
1
-> 1
-> 2
-> 4
-> 5
2
-> 1
-> 3
-> 4
It is possible in AWM?I do not know if find you it in the documentation, but it is a very simple test you can do yourself.
Thank you
Brijesh -
Inserting data into a table and insert many records into newtable
Hi all
I have table A and table b.
Suppose that if I insert the data into the table, this table is inserted, the number of records records Count I want to insert in the table B
I have to write a procedure for this cannot so any help on this.
Thanks in advance.
Sikora.Hello
You can use this anonymous block and extend it to create the procedure. You can delete loop or leave it there and use the cursor loop
DECLARE j NUMBER; BEGIN FOR i IN 1 .. 100 LOOP INSERT INTO A VALUES ('col1', 'col2', 'col3'); j := j+ sql%ROWCOUNT; END LOOP; INSERT INTO B VALUES ('table name ', j); COMMIT; EXCEPTION WHEN OTHERS THEN ROLLBACK; DBMS_OUTPUT.put_line (SUBSTR (SQLERRM, 1, 200)); RAISE; END;
Published by: OrionNet on January 21, 2009 12:53 AM
-
Repository many-to-many relationship, a side not updated.
Hello.
We have a point called creditCardInstallments descriptor and in a list of products.
< table name = "lc_install_products" type = "multi" id-column-names = "install_id" >
< property name = data type "productList" = "dΘfinir" column-name = 'product_id' component-type of element 'product' = repository = "/ atg/commerce/catalog/ProductCatalog '>
< attribute name = "References" value = "true" / >
< / property >
< /table >
And in the point-product descriptor, we are referencing the payments, only for display.
< table name = "lc_install_products" type = "multi" id-column-names 'product_id' = >
< property name = "installmentList" = "dΘfinir" column-name = "install_id" component-type of item = "creditCardInstallment" repository = data type ' / yyy/repository/zzzRepository " write = 'false' readable ="true">
< attribute name = "References" value = "true" / >
< / property >
< /table >
But when you add a product in a creditCardInstallment, is not updated the list of range in the product. Missing something?
You must have your definition below to make it work, the only side reading would be fixed, and the accessible side in writing would be list.
For creditCardInstallments point-descriptor having ownership of products available in writing
And in the point-product descriptor, we are referencing the payments, only for display.
Table constraints should be as below.
KEY(install_id,SEQUENCE_NUM) primary SCHOOL;
KEY (product_ID) FOREIGN REFERENCES CATA. DCS_product (product_ID);
This should refer to the id column from the primary table where the installation item is registered
KEY (install_id) FOREIGN REFERENCES CATA. INSTALLATIONs_TABLE (install_id);
-
One-to-many relationship repository
Hello.
When a repository item have a data type = "list" and a type of COMPONENT-component-, is there a way to remove the items referenced all when calling the Set accessor for the list?
Because we have to replace the entire list and we do not want to keep the old data.
I see two ways to possibly go about,
First of all, as you substitute completely the list of itemdescriptor property, so when you set the listproperty for itemdescriptor in your code, first delete this list (which would be a component item type) put cascade = remove its property that is referenced in xml format, and then create the list with the values you want and that you assign this list to your itemdescriptor listproperty
http://docs.Oracle.com/CD/E41069_01/platform.11-0/ATGRepositoryGuide/HTML/s0610cascadedelete01.html
Another approach I can think in case you do not want delete listtype property is that you can use the type of consumer or the custom property for list of property and override the method for this property setPropertyValue.
in thing first method setPropertyvalue you can do is get all referenced items associated with this particular list item from the repository id, it is possible via Reposiory query, and then delete the referenced articles and then call the super.setPropertyValue method to set the new values in this listproperty.
-
Merge many PDFs into multiple PDFs
Hello
I have about 500 PDFs:
PDF_A1
PDF_A2
PDF_B1
PDF_B2
Etc.
I want to merge all my files PDF 500 250 PDF files. I want to merge A1 to A2. B1 to B2 etc. No idea how to do?
Thank you
Hi Dave,.
First of all, the issue no longer exists. We decided to merge all the documents in the same file. that's done and OK
Then, anyway, I found a solution:
Use a script to put in different folders, all the files that need to be together. I mean folder will contain the files A1 and A2. Folder B contains B1 and B2 files...
Then use a PDF software online order to merge all the PDF files folder by folder.
Thnak you for your response.
Maybe you are looking for
-
Hi there, I just upgraded my presario sr2119uk from 32 bit to 64 bit os. can I install MORE than 4 GB of ram. Thank you
-
Problem with fullscreening Youtube?
Not just Youtube, but I have this problem with Veoh.com aswell. I play movies very well, but if I try to full screen, I can hear audio and you don't see anything but a black screen. I thought that this could be linked with me change the player by def
-
Possible to use a control as an indicator?
I'm building a simple form in LabView to speak with a unit on cameraLink. I can read and data fine, however, I am trying to set up a form with all the values of the possible configurations in the areas of text or numeric values. What I want to accomp
-
Incorrect fonts after LabView installation on new computer
I just got a new computer and installed LabView 2010 (same version as on my old computer). On the new computer, it seems that all the fonts, on the front panels and block diagrams, are too big. See the attached images of VI even open on both computer
-
error fatal msi.flashplayer
I am running windows7 Asus Home premium 64-bit. My photosmart 2600 fails to install with what appears to be a failure error tn_19166 Adobe MSI. Adobe offers to download the latest version I did. I have also disabled the loading of other programs, but