KCBS Team and Member Tracking

dmprantz

is Blowin Smoke!
Joined
Jan 11, 2008
Messages
1,767
Reaction score
454
Points
0
Location
Nashville
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
 
I think I would like to address each of your points

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!

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.

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.

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.

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.
 
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
 
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!
 
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.
 
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.
 
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
 
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.
 
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:
 
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
 
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.
 
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!
 
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
 
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...
 
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.
 
They double check mine as well several times the have Rub One Out instead of Rub Won Out. They must be perverted or something:icon_blush:
 
I modestly build financial databases for work and once it's setup it's easy to maintain and run queries and analyses from. I don't see why they wouldn't go this route. Excel would even easily used to build one.
 
Yep. I think everyone is in agreement that from a technical standpoint, the challenge is minor. At this point it seems to be some sort of political, stubbornness, or misinformation issue. If that's really the case you have to wonder how many other seemingly simple issues are in the same boat...
 
Folks,

I'm sorry for acting like a smarty pants the other day. My point in doing that was to demonstrate that I really, really know what I'm taking about here. Next to my family, I probably devote the most attention in my life equally between systems design and BBQ. This is not just something I chose to spout off on, it's what I live every day, when not thinking about my next competition:)

Anyway, my real point here is that I agree with what others have said and then some. I mean no offense to any of them, but no one on The Board of Directors of the KCBS should be making database design decisions unless you have a university degree in that field or 5+ years experience doing it. I wouldn't expect the BOD to tell a health department what is and isn't safe, and I don't expect them to tell software designers what is and isn't a good database design. What I mean is that it really doesn't matter one bit whether you call it TOY or COY. It doesn't matter whether you want the internal ID of a team entity to be visible outside of the database or not. Sound database design says that a team is an entity here, and the BOD should let some one else, tell them that. Please consider what I wrote in the OP of this thread as an hour's worth of free consulting on how to design a database, and if you don't agree with it, ask five other professionals (at least three others have sounded off in this thread).

I honestly can't think of a single organization where its board of directors makes database design decisions. That is left to employees or consultants who know what they are doing. Why isn't that happening here? Enough rambling though. As was mentioned, it appears to be universally agreed by those who should know that the current plan of a database is not the best way to do it. I started this thread in the Board section hoping that some one on the board would read it and take it to heart, but since no one has commented, I guess that isn't going to happen. Rather than sitting on our thumbs and saying what should happen, how can this be taken to the BOD for hopeful action? Should it be eMailed, or should we start an online petition, or maybe should some one who is a professional on the matter speak to the board at the 12/14 meeting? This is important, and I'd rather not just get a bunch of ppl to agree and then do nothing.

Thoughts?

dmp
 
Back
Top