The BBQ BRETHREN FORUMS.

The BBQ BRETHREN FORUMS. (http://www.bbq-brethren.com/forum/index.php)
-   For the Board (http://www.bbq-brethren.com/forum/forumdisplay.php?f=51)
-   -   KCBS Team and Member Tracking (http://www.bbq-brethren.com/forum/showthread.php?t=121394)

dmprantz 12-01-2011 05:06 PM

KCBS Team and Member Tracking
 
I'm listening to the November special board meeting, and I have some thoughts, comments, and solicitation for input in regards to the team name and number.

One of the issues I have is to look at this from a technical point of view: In a database, each entity should have an ID. This ID uniquely identifies the entity throughout the entity's domain. From a logical, technical point of view, I see no reason why teams should not have their own entity with their own number. If some one came to me and asked me to design a system for teams competing against each other I would think it a an ER failure for me to not create an entity for the team. I know I'm not the only database and software guy who competes, nor the only on this forum, so does any one disagree with that? If teams aren't their own entities, then you are really only tracking individuals. Once you have entities (with IDs) for teams, you can setup the appropriate relations and track things accordingly.

Next, I'd like to take a step back and examine how this would work from a rules point of view. How will The KCBS accommodate teams with multiple people, some or all of whom may not be at every event. For this, I look at college and professional sports teams. Does any single person make a team? Are there not usually at least two quarterbacks? Isn't there an assistant coach who can take over if the head coach is sick? These are teams, and there is no "I" in that word. Non-team sports like golf don't have teams. One potential exception I can think of is doubles tennis, but that really is a special case because it is one time team made up of two individuals. What I would suggest from both a database and league standpoint is that a team has a roster of its members. The roster can be limited at some arbitrary number. It's 53 in the NFL, so say somewhere between 1 and 53. One prevents it from being a team, and 2, or maybe even 3 limits some teams. For a team to be officially present, at least one person from that roster (or maybe 51%?) need to be there. Implement something similar to a trade system and a trade deadline to allow new members and to allow people to change teams. That way you are keeping track of who is on a team and who isn't and are able to determine if a team is present. Print a list of all team memberships before the competition.

Another question or issue I see with this, is to ask are members allowed to be on multiple teams simultaneously? Obviously that's not possible in most sports leagues, but I can think of a few examples in competitive BBQ where it happens. I don't want to get into the pros and cons of it right now, but the KCBS should define a rule around that and stick to it. The database can (and should) be designed to support a many-to-many association right there in case rules change.

The final thought from me on this is to bring up that this doesn't affect every team. In general KCBS doesn't require membership to compete, and an individual's team name or affiliation can change with every competition. There are a few exceptions: TOY, Sam's Club Tournament, AR, and I think The Jack are all currently based on head cook, though some of them also have rules about who can be on your team in future events. While obviously the KCBS shouldn't impose its rules on other organizations, it could try to communicate any new team dynamics to them. KCBS should also figure out how the inconsistent team names fit into the paradigm. They can ignore them if they choose, but they should try to think about any consequences of that ignorance and be prepared to handle it. If TOY and Sam's Club are the only conflicts, they may be okay as they seem to have those covered.

Those are my thoughts as a professional software and database designer with multiple degrees and several years of experience to back them up. Some parts of it may seem complicated or require some extra work, but none of it should be extreme. Life is complicated some times, and to adequately resolve complicated issues, you sometimes need complicated solutions. The alternatives are to either not do anything, which is where the discussions come from now, or to do something half-baked and not be able to accommodate everything.

Thank you for your time in reading this,

Daniel

Divemaster 12-02-2011 01:50 PM

I think I would like to address each of your points

Quote:

Originally Posted by dmprantz (Post 1866948)
I'm listening to the November special board meeting, and I have some thoughts, comments, and solicitation for input in regards to the team name and number.

I too managed to listen to the meeting and my first thought was “Why wasn’t this determined in a committee and THEN brought to the BOD?” I really don’t think that a BOD meeting is the place to be designing a data base. I like you have been in the IT industry for well over 30+ years and have never seen a system designed in such a manner work. NEVER!

Quote:

Originally Posted by dmprantz (Post 1866948)
One of the issues I have is to look at this from a technical point of view: In a database, each entity should have an ID. This ID uniquely identifies the entity throughout the entity's domain. From a logical, technical point of view, I see no reason why teams should not have their own entity with their own number. If some one came to me and asked me to design a system for teams competing against each other I would think it an ER failure for me to not create an entity for the team. I know I'm not the only database and software guy who competes, nor the only on this forum, so does any one disagree with that? If teams aren't their own entities, then you are really only tracking individuals. Once you have entities (with IDs) for teams, you can setup the appropriate relations and track things accordingly.

I couldn’t agree more.

Quote:

Originally Posted by dmprantz (Post 1866948)
Next, I'd like to take a step back and examine how this would work from a rules point of view. How will The KCBS accommodate teams with multiple people, some or all of whom may not be at every event. For this, I look at college and professional sports teams. Does any single person make a team? Are there not usually at least two quarterbacks? Isn't there an assistant coach who can take over if the head coach is sick? These are teams, and there is no "I" in that word. Non-team sports like golf don't have teams. One potential exception I can think of is doubles tennis, but that really is a special case because it is one time team made up of two individuals. What I would suggest from both a database and league standpoint is that a team has a roster of its members. The roster can be limited at some arbitrary number. It's 53 in the NFL, so say somewhere between 1 and 53. One prevents it from being a team, and 2, or maybe even 3 limits some teams. For a team to be officially present, at least one person from that roster (or maybe 51%?) need to be there. Implement something similar to a trade system and a trade deadline to allow new members and to allow people to change teams. That way you are keeping track of who is on a team and who isn't and are able to determine if a team is present. Print a list of all team memberships before the competition.

I’ll be honest, I don’t care if anyone from the team is present when the “Team” competing. What difference would it make? We are talking about the “Team of the Year”. To use your NFL analogy, if Green Bay suddenly decided to replace every player and coach in the middle of the season and still won the Super Bowl, who won? I am of the belief that it would be the Green Bay Packers.

Quote:

Originally Posted by dmprantz (Post 1866948)
Another question or issue I see with this, is to ask are members allowed to be on multiple teams simultaneously? Obviously that's not possible in most sports leagues, but I can think of a few examples in competitive BBQ where it happens. I don't want to get into the pros and cons of it right now, but the KCBS should define a rule around that and stick to it. The database can (and should) be designed to support a many-to-many association right there in case rules change.

Obviously, I don’t have a problem with people being members of multiple teams. The only problem would be if they were cooking for/with two or more teams at the same competition.

Quote:

Originally Posted by dmprantz (Post 1866948)
The final thought from me on this is to bring up that this doesn't affect every team. In general KCBS doesn't require membership to compete, and an individual's team name or affiliation can change with every competition. There are a few exceptions: TOY, Sam's Club Tournament, AR, and I think The Jack are all currently based on head cook, though some of them also have rules about who can be on your team in future events. While obviously the KCBS shouldn't impose its rules on other organizations, it could try to communicate any new team dynamics to them. KCBS should also figure out how the inconsistent team names fit into the paradigm. They can ignore them if they choose, but they should try to think about any consequences of that ignorance and be prepared to handle it. If TOY and Sam's Club are the only conflicts, they may be okay as they seem to have those covered.

Unfortunately, communication is not the KCBS’s strong suit.

Smoke Ring 12-02-2011 02:04 PM

You are absolutely correct. We implemented the KCBS membership database. I have been pushing KCBS to use an ID # to identify a team for years now but they insist on using the spelling of the team name. This policy has been carried over to the new scoring program. We are writing the software to import data from the new scoring program into the database and we have to rely on the way a team's name is spelled to identify the team. Obviously we will encounter a lot of exceptions where the team name was spelled incorrectly and the software has to be able to deal with that, along with providing a user interface so the office staff can resolve discrepancies and correct errors in the imported data. This is all unnecessary work and expense.

Garry

kihrer 12-02-2011 03:23 PM

In database terms the team would be the primary key and the members of the team would be the secondary key. Your primary key must be unique. A primary may have any number of associated secondary keys.

In programming terms it is a very simple concept. From what I have heard through the board discussions they are in for one heck of a cluster fark!

Jorge 12-02-2011 03:28 PM

Quote:

Originally Posted by Smoke Ring (Post 1867807)
You are absolutely correct. We implemented the KCBS membership database. I have been pushing KCBS to use an ID # to identify a team for years now but they insist on using the spelling of the team name. This policy has been carried over to the new scoring program. We are writing the software to import data from the new scoring program into the database and we have to rely on the way a team's name is spelled to identify the team. Obviously we will encounter a lot of exceptions where the team name was spelled incorrectly and the software has to be able to deal with that, along with providing a user interface so the office staff can resolve discrepancies and correct errors in the imported data. This is all unnecessary work and expense.

Garry

I write software for a living. If the scoring software could accommodate a 6-10 digit number to identify a team/cook etc. would that make life easier for you?

I don't know that it matters what that field in the input is called as long as the output is there and it's a number that you are able to match with a name later. Is that correct based on what you are planning to do?

Edit: I've discussed the software with Garry in the past month or two, but did not realize that the current software would not but using a unique # to identify teams. My understanding was that a number would be used and that it was under discussion. Having talked to Garry, I've got confidence in his development philosophy and experience to deliver the best product possible to KCBS.

kihrer 12-02-2011 03:42 PM

Quote:

Originally Posted by Jorge (Post 1867857)
I write software for a living. If the scoring software could accommodate a 6-10 digit number to identify a team/cook etc. would that make life easier for you?

I don't know that it matters what that field in the input is called as long as the output is there and it's a number that you are able to match with a name later. Is that correct based on what you are planning to do?

From what I heard, they are going to develop a spreadsheet to be used at the contest. The team name will be entered in on the spreadsheet. If it stops there, trouble will obviously follow as there is a hundred ways people spell barbecue. Not to mention all the other words that comprise a team name. I guarantee my team name will be spelled wrong even after I repeat each letter to the rep.

They mentioned adding a spot on the spreadsheet for the head cooks number. That should help with the match but a primary key ID number for the team would work much better.

As an example of how this could get screwed up, I was going through scores today while eating lunch. I saw the following two team names "Bu-Ba-Q" and "BubaQ". Is that the same team? What happens if BubaQ gets Bu-Ba-Q's scores because if the download finds a match it won't produce an error. Like I said above, I see a cluster fark in the making unless they make these fixes soon and it sounds like they are running out of time quickly.

dmprantz 12-02-2011 03:47 PM

Quote:

Originally Posted by kihrer (Post 1867855)
In database terms the team would be the primary key and the members of the team would be the secondary key. Your primary key must be unique. A primary may have any number of associated secondary keys.

Not to be jerky, but this is not correct. In database terms, a team and a member would each be an entity or table. The table would then have attributes defined in it. One such attribute would be a unique, non-null value, the primary key. Other attributes could be the name of each. Each non-key attribute should depend on the primary key to be normalized at a certain level (3NF). Each entry in the table is called a tuple, and each tuple must have a primary key. Over the years, tuple/attribute have been displaced by record/field, and then again by row/column. Each entity can be associated to another through the use of relations. Relations are generally either defined by a foreign key reference (1:∞) or by a seperate table with foreign keys to each of the related ones (∞:∞).

dmp

kihrer 12-02-2011 03:56 PM

Quote:

Originally Posted by dmprantz (Post 1867884)
Not to be jerky, but this is not correct. In database terms, a team and a member would each be an entity or table. The table would then have attributes defined in it. One such attribute would be a unique, non-null value, the primary key. Other attributes could be the name of each. Each non-key attribute should depend on the primary key to be normalized at a certain level (3NF). Each entry in the table is called a tuple, and each tuple must have a primary key. Over the years, tuple/attribute have been displaced by record/field, and then again by row/column.

dmp

Well I will admit that the last database I worked with was Oracle 8 many years ago. I have been in IT management for quite a while now. However, I would think you would have a team table and a team member table. Each entry in each table would have a key field and all other associated fields. For a member, the key might be the KCBS number and the fields might be team ID, name, address, etc.

My point was just reiterating others above that if you only use team name for the download you will have problems every single week at pretty much every single comp.

Jorge 12-02-2011 03:57 PM

Quote:

Originally Posted by dmprantz (Post 1867884)
Not to be jerky, but this is not correct. In database terms, a team and a member would each be an entity or table. The table would then have attributes defined in it. One such attribute would be a unique, non-null value, the primary key. Other attributes could be the name of each. Each non-key attribute should depend on the primary key to be normalized at a certain level (3NF). Each entry in the table is called a tuple, and each tuple must have a primary key. Over the years, tuple/attribute have been displaced by record/field, and then again by row/column. Each entity can be associated to another through the use of relations. Relations are generally either defined by a foreign key reference (1:∞) or by a seperate table with foreign keys to each of the related ones (∞:∞).

dmp

Thanks for using your powers for good:thumb:

dmprantz 12-02-2011 03:59 PM

Quote:

Originally Posted by kihrer (Post 1867893)
I would think you would have a team table and a team member table. Each entry in each table would have a key field and all other associated fields. For a member, the key might be the KCBS number and the fields might be team ID, name, address, etc.

Yes. That is certainly a way to do it, but I would not use team name as the PK, nor would team members be secondary keys of the team entity. They would have their own PK and have a relation between them. My main point in this is that teams are first class citizens and should be treated as such in the database, not as an attribute of a member.

dmp

kihrer 12-02-2011 04:05 PM

Quote:

Originally Posted by dmprantz (Post 1867897)
Yes. That is certainly a way to do it, but I would not use team name as the PK, nor would team members be secondary keys of the team entity. They would have their own PK and have a relation between them. My main point in this is that teams are first class citizens and should be treated as such in the database, not as an attribute of a member.

dmp

Then I think we are in agreement. I would use a number as the PK for a team and it's name would just be one of the fields. Relationships from team members to team could be one to many.

Jeff_in_KC 12-03-2011 12:27 PM

I just don't follow KCBS's insistence that teams are identified by exact spelling and not a number! This is totally ridiculous! Assign every team a number and member numbers that go on that team. Allow a member to be on more than one team or say UP TO three teams (for example). People say "well what about those teams whose members are not KCBS members? Simple... either program it so non-KCBS teams are just not given a number and thus, as would be the case anyway, they don't get points or assign all non-KCBS teams some higher number, possibly starting with 9 or whatever, and they STILL don't get points.

By not assigning team numbers, the Board is creating same ol' same ol' problems for the organization in the end and they will have wasted their efforts in designing new scoring software. We (KCBS) have a FANTASTIC opportunity to do something really good here and it's gonna be blown if it proceeds as it has been reported to be going here.

One final point that Divemaster made was spot ON - this should all have been hammered out in committees and taken to the board for approval or rejection and if rejected, suggestions given to the committee to go back to the drawing board! Come on guys! MICROmanaging again!

Divemaster 12-05-2011 11:18 AM

Because of the ‘Unique’ spelling of our team name I’ve had to contact KCBS at least a number of times in the last year. A primary key of a unique number is the only way to go…..

Jeff
Stockcar BBQ

Aka…
Stock Car BBQ
Stock Care BBQ
Stock Yard BBQ
StockCar B.B.Q.
Stock Car B.B.Q.
Stockcar B-B-Q
Stock Car B-B-Q

Scottie 12-05-2011 12:22 PM

Am i the only team that has reps double check our name? Even reps that know me double check my name and spelling on the official list. As they are doing their Friday walk around, prior to cooks meeting they always come up to make sure they have it right...

JayAre 12-05-2011 12:32 PM

Quote:

Originally Posted by Scottie (Post 1870445)
Am i the only team that has reps double check our name? Even reps that know me double check my name and spelling on the official list. As they are doing their Friday walk around, prior to cooks meeting they always come up to make sure they have it right...

I check mine and it still gets messed up.


All times are GMT -5. The time now is 02:53 AM.

Powered by vBulletin® Version 3.8.7
Copyright ©2000 - 2014, vBulletin Solutions, Inc.
vBulletin Optimisation provided by vB Optimise v2.6.0 Beta 4 (Lite) - vBulletin Mods & Addons Copyright © 2014 DragonByte Technologies Ltd.
2003 -2012 © BBQ-Brethren Inc. All rights reserved. All Content and Flaming Pig Logo are registered and protected under U.S and International Copyright and Trademarks. Content Within this Website Is Property of BBQ Brethren Inc. Reproduction or alteration is strictly prohibited.