Relational/joined databases

Hi,

New(ish)/novice user of Panorama X.

I have a simple database listing websites I host. It’s becoming unwieldy because something I want to track is installed WordPress plug-ins. Currently, there are columns for each plug-in, and the data is a list of options such as “installed”, “activated”, “free version”, “pro version”, etc.

Seems to me it would be better to keep WordPress plug-ins’ information in a separate database that’s connected to my main websites database.

Am I headed down the right track, or is my thinking polluted by having last used FileMaker Pro 4 in 1999? :wink:

(BTW: had already found this — Join Databases — which handles implementation details, but I guess I’m asking the bigger “should I?” question.)

The answer might be different based on the number of records that you are dealing with. The KISS formula may play a part in the answer.

1 Like

Fair. Call it triple-digit number of sites, likely 50ish plug-ins? I also view this as a “learn Panorama X” exercise, though, so while KISS is a strong guiding principle, I may override it in this case. :wink:

Unless the total number of unique plug-ins that are being used amongst all of the sites is out of control, I would not bother to make it more complicated. It seems that it would be valuable to see, for a specific site, exactly what plugins are installed, version number, date license purchased, etc, and have all this in the sites db.

I say this because the status of each plugin will be different for each site. It is not as if there would be one version on every site, one license on every site, etc. Thus no real benefit from having a separate db for plugins. You don’t want the number of fields to get crazy, but many very responsive dbs have 100-200 fields without a problem.

1 Like

100–200 fields! All right, then! If that doesn’t seem out of control, then that’s good to know. :smiling_face_with_sunglasses::+1: Thanks!

I typically go on the basis of gut. If it feels like I am working too hard, then I probably am. Consistency, accuracy, lack of entering the same data over and over. These are your goals.

KISS when in doubt. You can always alter your design for something like this easily if needed at some later point.

I agree that a database with a couple hundred fields is usually fine. On the other hand, there are situations where a relational architecture is appropriate even if there is only a handful of fields. There’s no hard and fast answer, it depends on your application.

If you haven’t found it already, here is the starting point for learning about Panorama’s relational capabilities. I don’t think setting up a relational architecture violates KISS principles, in fact, depending on what you need, a relational structure may be the simple way to go.

Please note that I don’t really understand what you are going for so I’m not advising you one way or the other. But it does sound like an avenue you should probably explore.

1 Like

Thanks for the link, Jim; I’ll dig into that page.

I’m not 100% sure what I’m looking to achieve, either. Wanting not to repeat myself, wanting to learn Panorama. A simple, low-stakes project like this seems like a good way to learn. :man_shrugging::smiling_face_with_sunglasses:

1 Like

tantramar, one question to ask yourself is how the database is going to “grow”. It should grow in the number of records, not the number of fields.

For example (old man sitting on a porch chair whittling on a stick) … Long, long ago, Panorama had a marketing catch line, “The database that thinks it’s a spreadsheet.” This captured the attention of people who used Excel and often created reports with a time unit as a column heading and rows fixed into categories of various income and expense items.

The problem was that when they moved their data to Panorama, they copied the visual aspect of their data by using those time units, like weeks/months/years, as column headings, with the first column in the database describing the categories.

So, as time went on and new data arrived, they had to add more and more columns to the design. This caused all kinds of extra work and complications for them. It took a re-education effort to explain the benefit of making those “fixed” income/expense categories the fields (including a Date field) and adding the weekly/monthly/yearly data elements as records.

That way, they could add years and years of data and easily select any time period they wanted for their reports. They could structure a form, or even a Cross-Tab table, to display the result in a visually familiar fashion.

So, as you add new data to the database, it’s best to do it by adding records, not adding fields.

The “join” feature of PanX is so powerful. Once, I had to merge data from two databases holding tens of thousands of records. At the time, the only technique I knew was to pull data from one database into another using the LookUp statement. The process took hours and hours and hours to run. Then Jim suggested the Join feature. I tried it, and it only took seconds to accomplish the same result.

You have a great idea, using data and structure you know well to acquaint yourself with PanX. Go small. Go simple. Learn the mechanics. See how a join couples the data from two databases with simple examples that you understand.

One last example … (stick is almost whittled down), once I was helping with a database that had students and courses. The goal was to be able to have reports showing all the courses a student was taking(with their test scores), and reports of all the students signed up for specific courses. In the olden days (Pan6 and earlier), this required three databases. One was a list of students (with their demographic information), the second was a list of classes, or rather a class-teacher record. The third, the one that grew in records, was a “transaction” database that held records with student number, class number, some date data, maybe some test data (it was decades ago). That way, for each student, using the third database, you could select/display all the classes they took for any time period. And for each class, again using the third database, you could select any class and see which students had taken it.

With PanX, you can do away with the third, intermediate, database by using the relational features.

It’s so cool.

Pre-ProVUE, I used to write how-to articles for the “FileMaker Report”. When Panorama was introduced into the world, it solved/overcame almost all the limitations FileMaker had at the time.

You may have to do things differently in PanX, but you’ll be amazed by the speed and programming (Procedure) control. Like the boa constrictor eating the elephant (PanX is a BIG elephant), take it little swallows at a time.

1 Like

I too was a FileMaker programmer. I was the second member of the Filemaker Solutions Alliance. I had a client whom I was starting to train in Panorama and he worked for Apple. He was Chinese. Another Apple team was trying to duplicate his efforts in FileMaker. When FileMaker II came out, he communicated to me “Filemaker II, slow as dog, piece of sh*t”. At that point we developed a Panorama database that tracked hardware failures worldwide and I taught Panorama classes at Apple University to their programmers.

1 Like

@JeffK, I don’t think I knew you were the second member of FSA. In fact I’m not sure I knew you did FileMaker development. Gosh, FileMaker II, that was a LONG time ago.

And yet, every time Apple mentioned databases, they’d always mention FileMaker and never mention Panorama, until we’d to write to them, time and time again, reminding them that there was an alternative.

But that topic deserves its own thread.

1 Like

It was. My company was very close to Apple in the mid 80s. We trained the original Apple Dealers how to sell solutions to small business. I traveled the country with Apple Reps and major software reps doing seminars and training sessions to prove the Mac was more than a toy and not only for graphics.

1 Like

This feels like a key insight that will guide my thinking on all of this. Thanks.