Design suggestion - tricky

Hi all - I have a transaction(fact) table and two dimension tables in my data source view.
Fact table - fctSales
Dimension table1  - dimCustomers
Dimension table2 - dimCategories
The Sales fact table is linked with the Customers table on Customer_Skey, however, there is no relationship between fact and Categories table; sales are not recorded at the category level, just at the customers level. I have another table(not in the data
source view yet) that acts as a link between customers and categories table but the issue is that each customer could be associated with more than one category. Users do not want to look at sales by category, but they need it in the cube for other reporting
purposes - example, for looking at sales by customers but filtering for just one category etc.
Any idea how to deal with this situation? Thanks for your help in advance.

The three tables you mentioned are : Customer, Sales, Category. You have another table called Customer_category that  links customer_id and category_id.
You need customer and category dimension in your cube. Sales is your main fact table. you need to create another fact table "Customer_category" to the data source view. Create a measure group based on "Customer_category". Record count will be the only
measure in that measure group. You will hide his measure group from user.
Customer and Category dimensions will be a regular dimension to "Customer Category" measure group.
Cateogy dimension will have an M2M relation to Sales fact using "Customer Category" measure group.
Please refer to M2M relationship implementation in the Adventure database.
thanks
Arun

Similar Messages

  • Design Suggestion(s)

    Hi all,
    I was wondering if anyone has any design suggestions for the following.
    I am making a simulation that permors 10000 turns (so it make 10000 calls to a function).
    I have made a gui that contains a start and pause button in hopes that I can click on start to excute the 10000 calls, and click on pause to pause the program and keep the same iteration that it's on (ie if i start the program, run 100 turns, and then pause it, when I unpause it, I want it to continue where it left off).
    My question is:
    in order to do this should I make a thread once i click on the start button??
    or should i avoid threads all together?
    Any other ideas/suggestion would be much appreciated.
    Thanks.
    P.S. I don't need people to submit code (although i wouldn't object to it). You can just merely suggest ideas.

    from what I understand about threads is this:
    once you make a thread, it's like you are running a spereate program from the original one, that peroms a task, but then when it dies, all of its values are erased (ie the thread does not update the original programs values). Afterwards the original program has no means of getting these values unless the thread wrote them to a text file, etc..
    am i incorrect? is there an easy way of doing it?

  • I want to develop forex web site need design suggestion

    i am a professional content writer currently writing for webdesignerhu - web design blog. i want to create a forex web site i am looking for design suggestions for that .
    i have search alot on google , saw alot of templates but cannot figure it out.
    i need some inspirations about forex websites, forex templates.
    I am looking  for +tive responce....

    Hi Cathie,
    What Brad explained above is that when you want to use the hosting and mail services provided by an external party e.g. Godaddy (not Business Catalysts) you need to create an A Record, using your hosting provider tools, that points to the data center where your site is located. Please find below the IPs for each data center:
    54.252.148.183 or 54.252.148.191 for sites on the Australia data center
    54.236.190.114 or 54.236.189.64 for sites on the United States data center
    54.246.209.120 or 54.246.209.119 for sites on the European Union data center
    So firstly you need to log in to the admin of your site and add the domain to use external hosting services - http://screencast.com/t/iV00iojmFfP
    Then you need to create an A Record at your hosting provider that points to the IP shown in our DNS tool (as shown in the screenshot from above).
    Please note that you need to create A Records for both @ and WWW records. For further assistance on this matter I suggest contacting your hosting provider as each one has their own workflow in terms of creating this records.
    I hope this helps!
    Andrei

  • AC Plug (a.k.a. Duck Head) Design Suggestion

    This is a design suggestion for apple's laptop power adapter. The current (2005) adapter design has a removable ac plug, a "duck head". The plug is removed when one wants to use a different country's plug type, or when the power cord extension is used. I often use the power cord extension, so I often remove the duck head. Recently, I lost the plug and cursed the duck head who designed it.
    My suggestion is to put a female powercord plug next to the duck head on the side of the adapter. This way, I'd be able to simply unplug the cord when I travel and never touch the duck head.

    The other end (the side which plugs into the computer) needs improvement in my opinion. It could have been more user friendly if it had a 90 degree "L" shape so it wouldn't stick out straight. When used in lap (like it is intended for) if you spread your legs a bit, the weight of the computer is supported by the power plug. It may fail earlier than it's intended assuming the female part of the plug is directly mounted on the circuit board. My two cents...

  • File-to-Idoc complete design suggestion

    Hi all,
    Could anyone suggests and validate the following approach.
    design:
    Sender file adapter communication channel will be used to pick up the file from the ftp. File adapter polls into ftp directory and pickup the right file and archived the file into archive directory. Adapter module checks the consistency of file and allows processing the file in XI. Java mapping program is used to segregate records into correct records and erroneous records. By using BPM, success message will be configured to send SAP as an Idoc message by receiver Idoc adapter communication channel. Error message, as an attachment will be notified to the specified system administrator by mail adapter configuration.
    1) Adapter module checks the consistency of file and allows processing the file in XI.
    This module will be used to reject the file if Header not present. Sets the error flag to the payload. This error flag is read in the condition in the receiver determination step and the message is sent to a receiver that will handle error messages. Mail adapter then sends this message via e-mail to the administrator. The mail content consists of the erroneous payload, erroneous file name and the error records. The processing is stopped here.
    Q) How can I handle the output of adapter module in Java mapping? Shall I design the source message like the output of adapter module or some thing?
    Q) How can I handle this process in BPM?
    2) Java mapping program is used to segregate records into correct records and erroneous records. Is the Java mapping program output will be input to that graphical mapping or something?
    Q) How can I handle the success and error records of java output.
    Q) How can I handle this process in BPM?
    Q) How can I configure the receivers based on the conditions set by Java services.
    Thanks in advance,
    venu.

    Hi Krishnan,
    You need to pass the control record.
    Std code checks whether the first record is a control record and then on tries to fetch the other details.
    I suggest one debug of IDOC_INBOUND_FROM_FILE or the main program RSEINB00 would help a lot.
    Rgds,
    HR

  • Design suggestion for application-wide configuration properties

    Hello all
    I am seeking opinions on how to design an application in which multiple classes have access to a common set of configuration properties that may change at runtime.
    Until now, I would create an abstract class dedicated to initializing the properties set and enabling access to them from anywhere in the application through appropriate get/set static methods (most probably using an internal java.util.Properties object). Lately, my confidence in that approach seems to diminish.
    So, I thought I should ask... do you see any issues with the above approach? Would you suggest any alternatives?
    What I am essentially looking for here is a best practice to stick with from now on.
    Thanks in advance
    G

    909773 wrote:
    For example a 24x7 service that is supposed to handle requests on port X is very unlikely to need to change to port Y while running.
    Or what happens if you have a plugin architecture and someone changes the root plugin directory to another directory.On the other hand, the maximum draw distance in a virtual world, an application's "skin", or a filesharing client's bandwidth limit are, in my view, properties that may very well need to change at runtime.
    Seems reasonable to me. That is the easy part. The hard part is
    1. How/when do you reload
    2. How do you code your app so it gets the new values and uses themAs for 1, apologies if I haven't explained correctly: I am talking about properties that may change programmatically at runtime, e.g., by a user through a configuration dialog. Ok.
    I can think of at least one way to deal with 2 (classes interested in all or a few of the properties implement some property listener interface and accordingly re-get values when notified about changes).That is how you detect it. It has nothing to do with whether the current running process is in a state that allows changes to be made.
    all over the code reflects a wise design decision vs using a singleton property manager, references to a single property manager object (maybe even a java.util.Properties object) passed around through constructors, approaches involving dependency injection (not relying on any framework though), or else.Depends on the application. For example with a distributed system propogating the changes correctly so systems are not out of sync can be problematic.
    Depends on the context in which your user makes changes. If it is an admin then it has the same context has if you were using a file. In that case I would use a singleton.
    If it is a user changing part of the system, then you can't use a singleton. In that case you would need a context object from which other code derives the configuration values it uses. That is a one layer hierarchy and of course more levels require more complexity via a context object for each level.

  • Design Suggestion for Custom ADF Application

    Hi
    I have a custom database table.
    I have a custom database view which has query from multiple tables including the above table.
    The custom table in the view is joined with other tables by columns like inventory_item_id, organization_id etc.
    I have to show user a screen where the results of this view are shown in a table.
    The user should be able to enter some data in the screen for these rows.
    (he will be able to enter the data only for fields from my custom table)
    When he press save button, we should enter the new data given by user into the custom table
    along with some other values from view rows .. like inventory_item_id, organization_id etc ..
    Can you suggest a best approach to achieve this ?
    I have to use BC4J for Model and ADF For UI.
    As far as my knowledge goes, I think we will not be able to do this with an updateable view since we might hit the error
    ORA-01779: cannot modify a column which maps to a non key-preserved table
    Is there a design pattern we can follow in BC4J so that this can be achieved?
    Thanks for any help.
    Sameer

    Any view can be made updatable if you write INSTEAD OF triggers for it. That might be a good solution for you. You can also base a View Object on more than one Entity Object, and as long as there are good associations between the EOs it ought to work fine.

  • Design Suggestions for Multiple DaqMX Task Streaming App?

    I'm working on a LabVIEW application in which I'm streaming high-speed data to disk from multiple PXI devices simultaneously.  Each device has its own DaqMX task, and all tasks stream to the same file.  The PXI device configuration (which devices are in the chassis, which slots they're in, and which channels to read from each device) is determined at runtime.
    Does anyone have a suggestion for a design model for this?  To make matters worse, I'd like to be able to specify a channel to monitor its data during the streaming.  I'm thinking the Producer-Consumer model is the basic approach, and I'm at the point where I have an array of DaqMX tasks, one for each device.  I could probably extend that array to be an array of clusters containing:
       1) DAQ Command (e.g. Initialize, Start, Stop, Acquire, etc)
       1) Task ID
       2) Control reference to 2-D array (where each DaqMX read can be stored)
       3) Array of channel names (to allow selection of channel to be monitored
    This could be passed as notifier data, to a data collection subVI, but the part I'm struggling with is finding the best way to run X number of tasks in parallel, where X is not known until runtime.
    Any suggestions would be appreciated.

    Thanks for the input.  With regards to the file format, the decision has been made by my superiors not to use TDMS - unfortunate, but NI hasn't provided the information to write a MatLab file reader, which is a requirement.  So, I've created a custom file format tailored to the needs of my application, but generic enough to be used for other apps. With it, I've been able to stream 8 channels at 800KHz (4 channels each from 2 PXI-6120s) without breaking a sweat.  However, the performance varies greatly depending on which slots the cards are in (but that's a whole different discussion - see the PXI forum for that one).  Once NI solves that one, I'll feel a lot more comfortable.
    I have already made reentrant subVIs that can perform a specific DAQ task.  The problem with a for loop is that the VI sits and wait for a start trigger, then acquires the streaming data.  I can't start the next VI because I'm in the first one.  I thought about creating a data collection VI, and this VI would start up to 6 other VIs in parallel, based on how many and which cards were present.  It's a bit messy, because each slot can contain one of two devices, so I'd need to check which type it was before calling it.  I'm thinking I'll have to create the task list and the references to the data in the main GUI loop, and then pass this using a notifier or queue to the data collection loop. 

  • Apex 5 Page Designer Suggestion and Bug

    Hi Apex Team,
    I would like to make a suggestion and report a bug related to the Page Designer.
    1. When editing the properties of an item on the Page Designer, there are two “CSS Classes” options, one under Appearance and another under Advanced (Show All options). My guess is they refer to the Item CSS Classes and HTML Form Element CSS Classes from the Component/Tree View; but this is not obvious for someone that comes new to Apex straight to the Page Designer. I would suggest renaming one of them with a more meaningful name to remove ambiguity.
    2. On the same item’s property on the Page Designer, by going to the List of Values Icon (^) of the CSS Classes or Custom Attributes, after the popup window opens, by clicking twice on the Go (>) button, the results are quadruplicated, even worse by quickly clicking multiple times. This does not happen for the Format Mask popup window.
    Thank you,
    Erick

    Hi Gerald,
    Saving the pivot view as primary default report works fine.  When you defined the pivot, did you save the setting as primary default settings (Actions > Save Report > Save As Default Report Settings, select primary)? Once you save, the report will display in pivot view when you come back to the page or reset the report.  If there is still an issue, please let me know the reproducible steps.
    Regards,
    Christina

  • Crystal Xcelsius - Design suggestion

    <p>  from OLA:
    I need some hints how to design a chart in a clever way.  Have a look at this link. </p><p>http://i166.photobucket.com/albums/u110/Olasa/M2000Simulator.swf<br /></p><p>The Excel logic is there but the design is terrible. You can test to change the numbers and see the graf move. I&#39;m looking for something like Andy Pope&#39;s Charts with variable width bars. </p><p>http://www.andypope.info/charts/colwidth2.htm </p><p>AfaIk, no chart can do this. But there may be other ways? //Ola </p>

    Hi Ola,
    I appears as if you are trying to display data with two parameters. The column chart only displays one parameter and there is currently no way to dynamically set a column's width in a column chart.
    I would suggest looking at a multi-parameter chart such as the XY or Bubble chart.
    Good luck.

  • Model Re-design Suggestion

    Hi Experts,
    in one of our application - we are accessing around 10 BAPIs from one single backend. By mistake the developer has created 10 different models in the project each one connecting to one single BAPI. The BAPIs are huge (complex set of input output parameters)- and a huge amount of coind has also been done over that. As usual - each model has two JCo destinations associated with it - which means I have 20 JCo destinations now in the project where I could have only two if the design was proper.
    Now my question is - are we now opening 20 connections per user due to this design fault in the runtime? If yes - thats a huge drawback of the application we developed. So we need to do something to have a single model out of all these 10 models - and that also without disturbing the model context bindings. We have over 300 fields in the whole application spread over different views - and deleting the existing models and recreating a new one will be a true nightmare. Is there any way by which I can merge all these models by keeping the contaxt mapping intact - and have only two JCo destinations for them?
    Any help - any light would be highly appreciated.
    Regards,
    Shubhadip

    Hi Shubhadip,
    Yes it really does take all those connections
    however, you can do things to ensure that connections drop as soon as possible.
    Also be aware that the metadata connection is made by the engine only when it needs to understand what the RFC looks like, so may not always be 2n connections where n is number of models.
    Pran Bhas, an excellent chap working at SAP Australia has put together some <a href="/people/sap.user72/blog/2005/01/08/adaptive-rfc-models-in-web-dynprosome-pointers that address this whole issue. I'd suggest you have a look. Setting the scope of the connections to task only could very well work in your application and would very much reduce the number of connections open...
    Cheers,
    Chris

  • CLOB design suggestion

    I am working on Oracle 10.2.0.4 RAC database on Solaris 10.
    We have a table consisting of 529 columns.
    Size of table 10.5G. Block size of tablespace - 8192. Current stats of the table.
    AVG_ROW_LEN  CHAIN_CNT  AVG_SPACE EMPTY_BLOCKS     BLOCKS   NUM_ROWS     BYTES
            897     657146        985         1736    1284408    9302797   1.0536E+10To this table an additional CLOB column would be inserted. Both insert and update operations would be performed on the CLOB column.
    Size of the CLOB – 250k upto 500k
    In fact we need 2 CLOB columns to be added, so the table design should support it.
    Since the size of CLOB column is going to be more than 4000 bytes it would be stored outside the table segment, so I am not quite sure whether I need to go for a different blocksize if I am storing LOB segments on a different tablespace. Also was not quite sure whether to advocate compression. The box has 32 cores so parallel queries can be made use of to improve performance and for using CPU power to uncompress blocks for any DML operations but I am not sure about this approach as there will be both select and DML operations happening on this table.
    Any suggestions on the best approach that would suit this scenario?

    hi,
    MD in BW refers to something which is changing slowly over a period of time, in the scenario mentioned by you it looks like that there are many changes, even if you built master data its consistency would be difficult to maintain.
    Please create this as transaction data flow with employee,date as key field in DSO and the department as data field.
    regards,
    Arvind,

  • IBook design suggestion for Apple

    For background, I've spent many years in the PC [but not Windows] world, and done plenty of work inside those spaghetti cable boxes. When I added a hard drive to my dual G5 powermac, I was duly impressed by the clean, elegant design, inside [!] the box.
    Meanwhile, I realized the time had come to put a bigger hard drive into my iBook, moving from 20 Gb in two partitions, to 100 Gb in three. There is excellent photographic advice on the web for the procedure, which is intricate but straightforward. There was the little issue of a stripped screw head, and some breath holding while I used a power drill to turn a phillips into a flat head.
    But all is well. Firewire target mode disk image and restore made that part of the process very simple, if time consuming. The new drive is faster and has a 16 Mb cache on board, so the iBook is more responsive.
    To the point of this subject:
    For some reason, the hard drive is buried in the bowels of the iBook, behind a wall of many many screws, phillips and torx head, to unscrew and screw, and cables to unplug and plug. Of all the hardware in there, the hard drive is probably the most likely to fail and need replacement.
    It should be EASILY accessible!!!
    For example, it could slide on rails similar to the ones that now hold it, and come out through a panel in the side where it sits. A panel that could be held by two screws [to make one think about opening it] and no more [to make it easy and quick].
    Flipping out the keyboard to install an airport card takes 5 minutes. Replacing a hard drive should take no longer. It would save Apple techs a lot of time, too.
    I'd like Apple to sprinkle some of that elegant design pixie dust onto this.
    Please.

    This is a user-to-user to forum, so it is unlikely that Apple will read your suggestion here.
    Try using the Feedback Form. In the PowerBook drop-down menu, you will find the iBooks listed. Leave your suggestion there. I would have already upgraded my hard drive if it were as easy as it is on a Windows laptop.

  • Design Suggestion  and tutorial

    We have a need of transforming and loading data from our downstream archive database to a target database with a different schema. This database will be used for reporting purpose. I am thinking of using:
    1. Warehouse builder
    2. Or oracle streams with rules to transform data
    I like warehouse builder but I don't understand it completely. Could you please suggest if this is the right thing to do?
    Also, I am looking for a basic tutorial that doesn't involve GUI, is that possible to write something without GUI or GUI is preferrable to learn OWB?

    But what's the advantage of using DataWarehouse Builder in comparision to writing our own SQLs to transform data? Writing SQLs seems to be more simpler.
    Datawarehouse builder will also give you following advantages :
    Audit logging - Number of rows extracted , transformed and loaded ( no of records updated ,deleted , inserted,merged,selected) for every SQL will be logged into a table
    Error Handling - You dont have to write your own exception handling , it will catch and log exceptions for you in a table
    Automating and Paralleling your load by using oracle process flow ( part of warehouse builder)
    Impact and Lineage Analysis ( change in table structure or columns can give you details of impacted tables , sql's down the line )
    Version Control of code
    Data Modelling - Designing dimensions , facts ,cubes, etc..
    many more....
    Yes you can do nearly all the above using SQL but then its cumbersome and lenghty process.
    When you use warehouse builder you write your SQL ( aka mappping) and it will take care of the things mentioned above.
    Here are few things for your requirement -
    How complex are your transformation and how much data you have to process and how many tables ?
    If the transformations are not complex and very few tables then doing it using sql will the quickest thing.
    If your transformations are really complex,lots of data and lots of tables, then its better to use CDC or Oracle streams to extract data and then use Warehouse builder to load it.
    Check the OWB11gr2 it will do CDC for you on the source tables. Your extraction would easier and simpler.
    Its all about easy maintance and common repository for your code.
    Oracle by Example is the place to start OWB -
    http://www.oracle.com/technology/obe/admin/owb_main.html
    You can learn quickly about using the GUI and then work your way to OMB scripting.
    -Enjoy.
    S

  • Design suggestions

    Client does not want DW/MV's/views created in the database.
    They want to directly report from the application's database.
    The application is a huge ERP and has so many tables and requires many tables and logic to be joined to create even a single report of what they need.
    What would be the best way to design in this case? create fact and dimensional tables-- all as opaque views ( then i have to create scripts to populate Pk's and Fk's) and can all this be done by creating opaque views in the physical layer? performance?
    1.What could be the easiest and best solution to go about in this case (just write all sql in the db and make it as opaque view) and with minimal opaque views in the physical layer report from it?
    2.create opaque views (only opaque view no DB objects--I mean can deploy the opaque view) of facts and dimensions?performance?
    3.or just bring in too many tables even for a single measure and use BMM (from huge ERP)
    Please suggest.... will reward every useful answer...

    My suggestion is that you should explain to the user that the repoting databases need to be designed differently from ERP transactional databases in order to gain good reporting performance. Directly hitting the app database for reporting is going to lead to very bad performance and a long term maintenance overhead.
    Using a view is not going to help in perfomance unless you are allowed to store the results of the views physically in a table or MV.
    OBIEE by design is best suited for star schema architecture, you will not be able to utilize the best features of this tool. I am hopeful that your client will understand.
    Edited by: Shreya Mehta on 7 Feb, 2010 8:05 AM

Maybe you are looking for

  • Planning area data not matching with backup cube / PSA

    Hi friends, while loading data from planning area to backup cube , for the key figure ( result of a macro),the data in planning area is not matching with PSA as well as with cube. At the same time Data is matching at total level but not at disagregat

  • Why won't the app store download apps to my i phone

    I just got an IPhone 4S and the app store won't let me download any apps. It keeps giving me an "Sorry your request can not be processed at this time." I keep signing in to my Apple ID account and still won't work. Need help!

  • How do I change the album order to "oldest-first" in my iPhone music player?

    Ok, so up until my last update to iOS 7.1 when I opened an artist in my music player it would list their albums from the oldest to the newest, but since I updated to the new version, albums of any particular artist are listed from newest-to-oldest. I

  • Minus Sign in the Downloaded DME file using F110 Transaction

    Hi All, From the F110 Transaction I navigate to the DME Administration from the menu bar in order to download the DME file into my system. I could open the txt file that is downloaded. Now my requirement is to add a minus sign to the invoice amount o

  • Video Button Linked To A Menu Can't Be Animated?

    I need help (if available to solve this problem)! I am trying to animate a video button on a menu (M1) that linked to the next menu (M2). Although M2 has an animated menu background, the video button on M1 is a still picture of the M2 menu. My "solut