Submitted by David_H on 2015/03/26 20:19
One of the wonderful things about IQ is how easy is it to have items show up in multiple grids.  But what is the best way to relate an item to two TLI?  Example:
 
- You have a project TLI of "Move Office"
 
- You have a contact TLI in the address book for the property manager for new office building.  You make a call to him and want to log it and want it to appear as a record both under the project AND under his name in the address book?
 
Use the hyperlink feature??
 
Thanks
 
 
 

Comments

A small preamble may needed to best answer this...
 
In designing a data system, one must generally answer the following questions:
  1. How much data entry will be required ?
  2. What needs to be quantified, reported ?
  3. What is just informational ?
  4. How much time are you willing to put up front to get organized ?
  5. How fast do ad-hoc questions need to be answered ?
  6. What kind of information is searching OK, and what kind it just won't do ?
  7. How long will you use this system ?
Answers to such question can guide you when designing your system.
 
Regarding your specific question, you can of course easily put the call under both items, IQ supports multiple parents.
There are multiple methods but all required some kind of manual intervention...
 
Question for you ?
  1. How many calls are you expecting ?
  2. Do you need to have statistics on these or just be able to find the reference (date, subject, actions) ?
  3. Are calls central and lead to tasks, followups, etc ?
  4. Is having the item under both the project and the contact "really" get you more bang for the buck ?
  5. Where is the location where the call will be the most useful ?
  6. Do you expect to use Pivot Table / Charts to perform reporting and if yes, describe ?
  7. Do you expect to want a link so other co-workers / boss can view this information in say MS Excel ?
  8. Could a "Project related" field (yes/no) which you would check for any /all items that are somewhat related to this project do the trick ?
I'm not a particular big fan of using extensive hierarchies. At least for such applications. 2-4 levels seems like a nice maximum. This is my relational database background speaking.
But this is a personal preference, others like deep hierarchies. IQ is flexible that even in these cases, it can collapse the hierarchy to focus on some aspects.
 
HTH !
 
Pierre_Admin
 

Armando

2015/03/26 23:29

In reply to by Pierre_Admin

[quote=Pierre_Admin]
IQ is flexible that even in these cases, it can collapse the hierarchy to focus on some aspects. 
[/quote]
 
True, and  with the right filters any item can become the  top level item of a hierarchy. Relatively speaking of course, in a given grid.
 
 
 
-------------------------------------------------------
Windows 8.1
Sony Vaio S Series 13 (SVS131E21L)
Ram:8gb, CPU: Intel i5-3230M, 2.6ghz

[quote=David_H]
You make a call to him and want to log it and want it to appear as a record both under the project AND under his name in the address book?
[/quote]
 
Pierre has good points for a more in depth thinking process about how to manage your data in general.
 
- I personally use hyperlinks when I don't need the actual data to appear at 2 or more places at the same time but want to refer to it easily.
 
- I use multiple parents when I really need to have items at more than one place at the same time.
This adds complexity to the structure and can lead to mistakes (e.g. 1- erase items you didn't want to erase because you  forgot they were also there, 2- marking items as done and loosing what's underneath because you forgot about it, 3- modifying items and forgetting that the modifications won't work with the other contexts in which they are also used, etc.), BUT it can also be extremely useful (e.g.. : you need to see the data right there because it's part of a bigger text, you need to know how many time it's been linked to another item (using the nbparents field), you need to see it in different  contexts to make structural decisions, you need to see all the options/items right there before your eyes without going back in forth between grids, etc.)

So, for multiple parents I use a system in which I often add an extra  item in between the parent and the child to visually clearly indicate that the parent above isn't the main one.
BUT sometimes I won't do that if I know mistakes won't be a problem, and I rely instead exclusively on the nbparents field that I usually put near the item fields in my grids. And, using conditional formatting, I Color code the  nbparents field to make it easy to notice when an item has 0, 1 or more parents.
 
For example, in the screenshot below, the "4" in the purple cell indicates that the item has 4 different parents. The Color purple immediately tells me "Ah! that item is used in different places". 
 
 
 
In this next screeshot, I use  the intermediary item I talked about. It's the orange one  (note that all colors are automated, I don't do that by hand... otherwise, what would be the point of using a computer?)
The orange item clearly shows me that the items below are also found in other contexts and that I need to be cautious.
 
 
 

Now, how do you create parent links? It's certainly in the manual, but since I'm procrastinating big time, here you go:
Creating parent links can be done in several ways;
 
1- Select your items and Ctrl+Drag&Drop to some other parent.
OR
2- select your items, right lick and select "tag** items". select the parents under which you want them, right click and select "add items as sub-items" (I have shortcuts for all of that so I never right click anywhere) -- note that you can the tagged items list, add items it, etc. You can always see that list in the properties pane.
OR
3- select your items, ctrl+shift+C (to see the copy dialog), copy as XML (choose the xml option that fits your bill) and then go UNDER the parent you want as the extra parent, and paste (Ctrl+V) as LINKS.
 
I usually use 1 and 2.
#1 when it's easy to do (a couple parents to drag from one visible place to another immediately visible place), #2 when I want to do more complex manipulations, tag items from different parents to create a bigger list, add them to several parents, etc.
But I don't have a rule... I just do what feels convenient.
 
 
**tag : I've had discussions with Pierre about the word "tag". It's misleading and will probably be changed at some point for something like "collect", or something like that. In IQ "tagging" doesn't mean adding a tag like we're now used to hear.
"Collect" seems more straight forward : collect items, add items the collection, empty the collection, add the collected items/collection under the parent, etc.
 
-------------------------------------------------------
Windows 8.1
Sony Vaio S Series 13 (SVS131E21L)
Ram:8gb, CPU: Intel i5-3230M, 2.6ghz

Tom

2015/03/27 05:14

In reply to by Armando

Great replies here
Interesting to get a peek at your work file Armando

> 1- Select your items and Ctrl+Drag&Drop to some other parent.

@David, I presume you're familiar with the 'dual-pane' setup (?)
(Right-click a grid tab and select 'new vertical tab group')
That setup is very convenient for 'Ctrl+Drag&Drop to some other parent' in a different grid

Jon

2015/03/27 08:02

In reply to by Tom

[quote=Tom]
That setup is very convenient for 'Ctrl+Drag&Drop to some other parent' in a different grid
[/quote]
 
Yes and you can open new window for the same grid and do the same drag/drop operation. If your grid is rather large, having another view open has obvious advantages.
 
Jon
 
 
--
Sony Vaio Z, Intel Core i7, 8 GB RAM, 800 GB SSD
Windows 7 Professional 64 bit

gregory

2015/03/29 15:51

In reply to by Armando

I very much agree with Armando that the current usage of the word tagging is confusing and should be dropped. I like either his suggestion of collection or possibly, multi-select.
UPDATED I am updating this post to add a further suggestion, which is an indication of duplicate values.

I normally do not display the properties pane which is the main way at the moment of knowing whether an item has multiple parents. This is for two reasons. Firstly, it uses quite a lot of screen estate at the right hand side of the screen. Secondly, it shows only details of one item – the current row. I would like to suggest the use of a reduced properties pane, having just three four columns.

Column one would be labelled P, the number of parents.
Column two would be labelled S, the number of siblings.
Column three would be labelled C, the number of children.
Column four would be labelled =, the number of duplicate  (equal) values.

It might look something like this. There should be one row for each item. The columns should be very narrow - I cannot achieve that with this HTML editor:
 
PSC=
0 (or 1)
001
****
 
* would simply indicate more than 1 for parents and duplicates and more than zero for children and siblings. It should be highlighted in red in the P and = columns, thus giving a clear warning of multiple parentage and/or duplicate values.
 
This idea is tentative – do other contributors have better suggestions?
 
Mark GREGORY, Redon, France - GMT +1/+2; EST +6
 
 

Pierre_Admin

2015/03/30 11:28

In reply to by gregory

Hi Mark,
 
I welcome your suggestions. Could we not use a smart field for this ?
 
Take a look at this screen shot:
 
First number is the number of parents. Red background if more than 1. Second column is the number of children.
 
To create this smart field, enter the following in the options section of a new text field called ItemInfo:
 
<source>SELECT ¯Items.ID AS ItemID, (IIf([nbparents]>1,"<bgcolor=FF0000> " & [nbParents] & " </bgcolor>"," " & [nbParents] & " ")) & " " & [nbchildren] AS ItemInfo
FROM (¯Items LEFT JOIN ¯qnbParents ON ¯Items.ID = ¯qnbParents.ItemID) LEFT JOIN ¯qnbChildren ON ¯Items.ID = ¯qnbChildren.ItemID;</source>
 
 

gregory

2015/03/30 18:39

In reply to by Pierre_Admin

Thanks, Pierre. This looks promising! I will experiment with it further tomorrow.
 
Mark GREGORY, Redon, France - GMT +1/+2; EST +6

gregory

2015/03/31 11:04

In reply to by gregory

The suggested field definition works fine!
 
I am not succeeding in extending it to include a count of items which have identical item text – such that if the count exceeds one, we know that we have duplicate values. This is important for maintaining data integrity. Please could you suggest a syntax which might work? The idea is that for each item, the count of items having the same item text should be reported, with a count greater than one highlighted in red (much as you have already demonstrated in your existing suggested query). I appreciate that this will be heavy in performance terms, and will remember to switch it off when it is not useful.

I do not think that it is particularly important to report the number of siblings.
 
Thanks again.
 
Mark GREGORY, Redon, France - GMT +1/+2; EST +6

Pierre_Admin

2015/03/31 11:35

In reply to by gregory

[quote=gregory]
I am not succeeding in extending it to include a count of items which have identical item text – such that if the count exceeds one, we know that we have duplicate values. This is important for maintaining data integrity. Please could you suggest a syntax which might work? The idea is that for each item, the count of items having the same item text should be reported, with a count greater than one highlighted in red (much as you have already demonstrated in your existing suggested query). I appreciate that this will be heavy in performance terms, and will remember to switch it off when it is not useful.
[/quote]
 
Humm... I'm not sure that data integrity should be dependant on item text and the impact on performance will be quite significant when the number of items increases, but I'll look into an SQL string that will do that. YMMV as they say...
 

gregory

2015/03/31 12:04

In reply to by Pierre_Admin

Thank you very much! That will be very helpful. Duplicate or redundant data is, I think, a Bad Thing - one of the many reasons why relational databases insist on a unique primary key?
 
I had to look up YMMV: "Literally means "Your mileage may vary" but is often used in forum talk meaning that your results will vary." No doubt that is because here in France the last time we had miles was when Julius Caesar was fighting his Gallic wars!
 
Mark GREGORY, Redon, France - GMT +1/+2; EST +6

Armando

2015/03/31 13:01

In reply to by gregory

[quote=gregory]
Duplicate or redundant data is, I think, a Bad Thing
[/quote]
 
I wouldn't say it's a bad thing in general, but it's true that from a researcher's perspective, it's pretty bad and can lead to huge loss of time. I think that a simple function to look for duplicate items across the DB (like the ones you can find in EndNote, Zotero , etc.) would be enough. Run it once in a while to check fir duplicates and delete what should be deleted.
 
An interface to delete duplicates should  be able take into account specific variation, should be able to be configured by the user.
 
-------------------------------------------------------
Windows 8.1
Sony Vaio S Series 13 (SVS131E21L)
Ram:8gb, CPU: Intel i5-3230M, 2.6ghz

Pierre_Admin

2015/03/31 13:43

In reply to by gregory

How about an optional section in the properties pane showing identical items, the current one in bold ?
Each would be a hyperlink

gregory

2015/03/31 14:22

In reply to by Pierre_Admin

Sounds great! I especially like the idea of hyperlinks, because it is always necessary to go to one or other or many to do something about it or them.
 
But my original modest proposal still has one major advantage, and one minor.
 
The major is that it makes it possible to see at a glance which items have duplicate data. If duplicates are only highlighted in the properties pane, it is then necessary to step through each item to search for duplicates.
 
The minor is that it does not require the loss of screen real estate that leaving the properties pane visible engenders.
 
Since it is nearly Christmas time, can I ask for both???
 
Mark GREGORY, Redon, France - GMT +1/+2; EST +6