logo

NJP

Creating a data model for a cooking management application - Live Coding Happy Hour for 2020-06-24

Import · Jun 27, 2020 · video

[Music] hello and welcome to live coding happy hour we are here today on June 26th we're going to talk about cooking management but first I will introduce my guest and co-host and we'll start with Adam I'm Adam in beers an hour I tell us a little bit about yourself sorry sure set the doing service now development for about two or three years at this point work for a company in the travel industry so we're doing okay well leave it at that all right thanks Adam Chuck hey this is Chuck Tomasi from ServiceNow been here for just over 10 years finally cleared that milestone and and was a customer for a couple years before that I am a senior developer evangelist and I look forward to working out what we're working on today let's go build some table all right and I'm Brad Tilton I'm a developer advocate with a developer program here at ServiceNow I've been with ServiceNow for almost four years and in the ServiceNow ecosystem is a customer partner and now employee for about 12 years I am so I'm excited about what we're gonna do today but before we get into that we are going to introduce our beverages so we will start with Adam the Sam Adams Summer Ale enough because Sam Adams is the only brewery that makes a multipack that has no IPAs kkona kkona brewing does also oh yeah keep an eye out for that one I have a special one today this is a Lithuanian beer that my son-in-law got me I'm not sure how you say that it looks like Saturdays but I'm told it's something more like surgery should be surgeries it customer close the other rest of it the Baltus white I got so this is a heavy nice and I have a innocent gun barrel aged ale so it's aged in scotch barrels we have this before but on that it's actually a lot lower than I thought it's like 6.6 Wow north of eight or nine yeah one's can really put you yeah yeah alright well I am I am both the host and the driver today so let me introduce what we're going to do so today's topic is something that I've been wanting to do for quite a while and the timing is kind of finally right to do it on the show but I am I'm a big fan of cooking meat especially smoking meat and just I enjoy all sorts of cooking but one of the things that I want to do is is create an app to manage you know the pretty long sessions that you go through when you are smoking meat or really just any sort of cooking or grilling there's you know crock-pot all sorts of things that take a long time and so I want to build an app to manage that process and eventually integrate with my Wi-Fi thermometer and some other things and I've got lots of ideas at some point I would like to send a survey to my kids after we cook and see how the meal was mainly so that a month later I can show them that they gave something a high score when they say that they gave it climbed up floors that's right so so yeah lots of opportunities where to where to go today we're gonna start by creating the data model for this app so we're gonna get in there make some decisions on you know what what types of things we should do on Able's and and all that sort of things so I'm gonna transition into screen sharing here but maybe Chuck do you have any just overall you know tips or words of wisdom for us and of creating data models while I put you on the spot here while I change into a screen share yeah it's really I learned something and talking with David Lew recently he told me that one of Fred Letty's stories was think about something for a week then go build it in a couple of hours if you get the data model right everything else falls into place I often draw pictures on whiteboards and windows and papers long before I ever set to making a table because I want to know what those relationships are if you get it wrong it can be very painful months or years later to say oh this should have been a many-to-many instead of a reference field and changing the data model and all of the scripts that interact with it all the flows that interact with it can be very very hard and you'll have to do a lot of testing later so the data model is the first thing to lay down it's the foundation of your application and you want to make sure that foundation is solid as can be not to say you can't extend it later but to change fundamental things like we need another table between a and B that gets to be a big challenge and and can be very costly later on awesome thanks Chuck all right and I should have said this one of the reasons one of the big reasons I wanted to have Adam on is he is really active in the S and dev slack on The Cooking Channel I think he he's always doing something and experimenting and it's pretty fun to watch over there so I thought that would be a great guest to have on and help us kind of guide where we need to go because ultimately you know I do a lot of grilling and smoking but you know I would like to make this in a way that you could really use it just to manage you know links to recipes and when you use something and how you deviated and things like that can you make your punch dally bit bigger oh I sure can and then I want people to be able to see my new button okay there we go alright so what we're gonna do is we're gonna start with a guided app creator to create our data model to start with here so I am here in my company applications you can see my company's applications is me playing with components in my instance but we'll go ahead and come in here to create new and this is almost the perfect size so we're gonna call this cooking management we're gonna keep it free generic here so when I create cooking management I'm gonna I'm gonna be a good developer here and write a description so manage cooks across different I don't know I would had more fun with that and said smoke them if you got him and then about that scope name I struggle with all the time I know I I hate I hate a cut off word in my school name so let's see if this works no icon oh I should have put an icon I don't I don't think I have a great icon for this but we can add one later so I do want to create at least I think I want a couple of a couple of roles for this so generally I don't know about you guys but when I create an app like this I usually want like an admin role so this you know the admin would be able to manage the settings of the app basically and that allows to let somebody else do that I don't always have to be the person managing it so we'll go admin and then I probably want to user role unless this person can can use the actually do the the cooks and the recipes and I think for this we'll probably leave it at that I don't know that I need more roles so we'll continue I am going to want a mobile app for this eventually so we'll go ahead and select that have it create it and you know what for the heck of it let's create a workspace as well this is even if you're in doubt click the mobile button it's such a time saver if you think later you might there's a remote possibility that you want mobile way easier you get your launch pages set up you get your a whole bunch of the actions and functions and data model even if it's not right it'll be close and it's a head start yeah and the other part of that is the the workspace same same thing yeah because with workspace I believe right now that's the only way to spin up a new workspace is through guided app creator so if you think your app might need a workspace I would just go ahead and add it I don't think it creates that much anyway so you're not it's not like you're adding a ton of files to your app all right so we have finally created the app on my my single noted employee instance here which took a little while so we need to create some tables we know we want at least a couple of tables I want a table for recipes that's probably gonna have a URL to whatever recipe I'm using maybe an image field if I happen to be using a recipe from a physical book which I have a couple of but not not too many I primarily use used stuff online we'll need a table to manage like the cooking session so what recipe did I use what am I with what kind of food on my cooking an instantiation of that recipe yeah that's right yeah so in an instantiation so I think the first decision is for this cooking table do we want to extend the task table or do wanna create just a brand new table okay what do you get for tasks that you think you'll need in cooking so task would give you state assigned to you know work flow capability I guess you get attached a workflow to anything what I don't so that we're talking about we're not talking about the recipe itself you're talking about the instance of the recipe so to speak for the reference to the recipe yeah yeah so in in the world of smoking meats we would call this a cook that's okay you know you've got your 18 our brisket cook and so this would be this would be basically this cooking session so we're not really gonna assign it or if I try to assign this to someone else in my family it's not going to go very well I you know I'm not gonna probably no approvals right so I'm kind of thinking let me just want a new table although it yeah doesn't cost you anything if you extend to ask it need it later it's easier to say yes or no and people take turns work on a rotation so it's true could be done I could get assigned to cook and I guess I guess I mean I'm not the only the only person in my household that I mean my wife's actually a much better cook than I am and my kids are getting into it now so maybe we extend the task table and use some of the assignment functionality because you're right it doesn't really cost us anything other than a whole bunch of extra tables or a bunch of extra Fields on the table it's not a clear no so I would say go for calendar alright let's let's extend task you guys have convinced me you la's oh I'm worked I am generally a fan of SLA is like let me prove how I can be how I have been successful but I don't know if I want an SLA that's actually a point of condense it can can it can be something that that is difficult when I'm I'm cooking something and my wife's cooking something and we need to be done at the same time it gets contentious I certainly don't want to take it out of the smoker early definitely well you if it's done you can take it out and let it let it sit and in a cooler for a while a lot of times all right so we have all these task fields we've got location my due date is is actually a decent one here I think we'll want to use like comments comments or work notes for some notes about it what do we need so we will need a recipe reference Jase came up with an icon for you you have to check the else ehh select all right when we get back to the app config so let's we'll need a recipe reference and I know we don't have the table but I can I can reference a different table for the time being that you can which sure so we'll need recipe what else what else do we want to track in a cook mm-hmm do you need anything around the metrics of you know high temp low temp cook time that's probably gonna be in the recipe itself yeah yeah so we will want so I think we already have a start and end on task you do actual start an actual end which is the fields work underscore started work on this core and you could use that to say what are your what your actuals were your recipe make call for a hour thirty or sixteen hours or whatever it is you could put the actuals into this table to say well okay next time I do this I know that it's gonna be fifteen minutes early or two hours later or whatever it is as there's what the recipe calls for and then what your cookware actually does as we're soon discovering with new appliances that's right we should we should do that because if you're I mean I'm in Southeast Texas and we it's it's pretty warm most of the time that is a good one just put in the smoker and let it do its thing we just went out the window here in Phoenix there is a time of year where I could I could I could low smoke some things yeah you're the same same thing in Phoenix there's a magnifying glass and that would be an integer I think so and then I get a phone number why not just so we will want so I want to know what I am cooking on so I've got oh yeah I have a weber kettle that i that i grill and sometimes do a longer cook on and then i've got a big stick burner smoker and I've also got a pellet cooker so I've got a few different things I use outside you've got and that hardware but you've also got the fuel - that's right yeah I want to know what kind of wood I'm smoking with or what kind of charcoal I'm using because there's a big difference in different kinds of charcoal and vendor management in here that's right we can on on board a new charcoal vendor so I could use a CI for something I don't well that's an interesting thought the CI grow your grilling equipment yeah consumable charcoals whoo I'll have a I'll have some sort of cooker well we'll use CI for that except I think that could make sense and we'll have some sort of cooker and then we do need a fuel and maybe this can be you know when I select a if I select a certain type of cooking device then I get some some specific types of fuel I'm gonna make this a reference I think you guys tell me I have I have this habit to make everything like I will end up with no choice fields and make everything a reference because it's possible that in the future I may need that to be a table that I'm gonna reference I mean heavily towards reference as well but I also know when a choice is the appropriate option if it's five things and it's you know ABCDE that's a choice to me yeah let's go let's make it a reference yeah fuel feels lighter your if you're out of Kingsford you're gonna go for the you know the generic brand and you want to have a way to enter that and be able to adapt to that without having to go go modify your choice list that's right Jase has a good comment about not being able to buy the generic charcoal because it's not an approved vendor I like that all right what else what else Adam what else would you want to track here we talked about the cooker I think we may use CI for that so we already have a CI we can quickly make a CI table yeah yep the biggest thing is you may need a reference qualifier on that I mean you could get really creative you know there's a lot of ways to sear a steak my server blades have gotten pretty hot before vacuums do we want to track any ingredients on the cook spices that's a good that's a good point part of the recipe how about off recipe items yeah I think we will want to so I think I'll probably want some sort of some sort of field where I tell it like hey I didn't I didn't quite follow the recipe directly here because I actually have a lot of like there are some sites where I really like the flavors that this person has but then I don't you know the technique they use I don't I don't really eight like and so I use a different technique you could use the description field or even one of the journal fields to say hey I varied here that way if your feedback comes in higher your survey results I mean higher you can go back and reference the notes on that particular cook that's right so we think we already so we've got description comments or work no it's short description and we can use a lot of those you know I don't the kind of the meat and the wait since that can vary yes and I should the cooker be the CI or should the meat be the CI that's a great you make the meat zoomable [Laughter] that's true that's true it is consumable that's that's the whole point of this right you concern so but it may not always be meat so what do we I guess we could call this food that's uh that'd be a good one and that's probably gonna be a reference and I'm already thinking of interesting interesting ways we can input reference the same so Jase brings up an interesting idea that he says personally if I had a thing on my phone to track this I'd want to enter very little while doing it and and I think if I understand your process correctly you're going to enter this ahead of time this is what I need to do and then the phone would be for the quick updates we're not going to be entering a whole bunch of information on the phone about here's the meal this is the recipe this is what I'm going to be using for equipment that would be you're gonna be out at the gorillas going oh quick note I added extra salt and you know that's it yeah yeah that is so one of the one of the goals of this is going to be to make it very easy to input into it so that that's a really good point I'm not gonna want to do a lot while I'm while I'm cooking it but you know there are times where you know I might you know I might want to smoke like a fairly expensive brisket and so for something like that like it's it's gonna take a long time and I really want to track what I did to this because if it's really good then you know that's gonna be great if it's really bad I want to I want to make sure that I don't screw up a really expensive piece of meat again same with like a nice steak or you know anything so I will want to track some things but that is a good point because I'm not going to want to not gonna want to add a ton of stuff to this that's that's a very important point when you're thinking about the mobile experience it's got you know get in get out and and ultimately I think the flow for this once I get it all going for me is going to be my Wi-Fi thermometer as soon as I plug it in and turn it on it automatically starts a cook and it's got a cloud API for that and I'm going to want that to what I really want is for that to like ping service now set up a cook for me and then ping me and say hey you need to fill in you know the recipes and stuff that you're using so I was just about to ask that what role does the thermometer play in our data model or you think about launching that over to metric base on a on a time basis yeah so let's let me save this table and I meant to show this at the beginning but let's go you know any any last any last things here before we I mean the food was a pretty important one that I had forgotten about all right the nice thing is we can always add more fields to the table really easily it's a single ingredient task we're not like putting a whole meal on the grill and saying corn and Mead yeah maybe we'll want to be able to group these together if I'm doing multiple things but yeah I think for right now we're probably focusing on a single recipe R so good prefect sometimes this the obvious ones are than what you go with all right let's do you need a number do you really need no I guess I mean it's the test day of it if it's gonna give me a number automatically I'll take a number does it cost me anything and then I can be like hey remember cook zero zero one zero zero zero five three years ago that was a good well yeah especially you do the same thing over and over it's not like when we did in February of 1987 yeah that that's the problem is I have done enough of this to where some I forget which ones you know which ones I did well and didn't do well so I wanted to share this real quick this is the meat thermometer that I have is called a fire board but it will do [Music] I don't always label these very well but yeah so like here's one where I'm tracking the ambient temperature and I did an okay job of keeping a temp than this one and then I'm tracking you know this looks like I have just probably doing two different pork butts and I'm tracking those temps so this is the kind of thing that my thermometer will do and it's got a an API and this is a nice you know graph right here and I'd like this to kind of correspond with one of the things I want to do in the cooking app is say you know when I this is when I threw another vlog on I don't know that I will actually track that but it is something that people track when they're doing long cooks like this yeah that would be some sort of data point or mm-hmm so ultimately we want to we want to integrate with this that'll be a different show first we're gonna set up the data model alright so we have our cook field our table is ready so let's continue so the other big table we want is that recipe table I think for this one we probably don't want to extend the table I would agree and I know a couple of things that I want for this are I want a URL field let's just call this it'll be called recipe so we'll give it a link and it'll be a URL field probably want the name of the recipe that will make a display field mm-hm [Music] I wish the field type would default the string and I want this to be 100 characters just in case if you want that as your display field don't forget to pull down and check that Oh great point yeah so we have display in the mandatory so let's make that our display field so I don't have to look at it in the list and see why is there a sis ID and then think oh I never said this is the display field all right and then I think I'll also want I want to track the source so this could be so there's a lot of websites that I you know that I frequent that I you know I trust something from the site and there's some cookbooks that I use that I trust and so I think I want to I want to have a source because I could see me wanting to like look back of what I've done over the last six months and say oh wow I you know I basically only cooked from this one place let's try something else no is that a reference also yeah I think it probably is a reference and you want any type of notes for the recipe you said you wanted an image field on here at one point yeah I creator because it gives you a limited number of field types I can't remember image was in there or not yeah I don't know I think the purpose of this is probably just gonna be to tell me you know hey this is what you used for this and I'll probably follow the website because it'll it may have a video or something like that but that's a good that's a good question one of my long-term more pie-in-the-sky goals is if there's a recipe that makes me makes me do something in a certain time it would be nice to say this is when I started and have it alert me like hey it's time to wrap this or add something that add a sauce or whatever you're supposed to do but we can we can do that when we come to it we've got some flashbacks to Aaron Buress service now in his burrito app so we've got some comments around rating you know and it might be nice to rate rate the recipe a specific recipe I think maybe when we when we add that into the cook because I'm not sure whether we wouldn't want it yeah I think rating is a good idea you could take a reading on the cook and then average them up and roll them up to the recipe I've done this one seven times and it averages a 4.2 so description and image there's another suggestion ingredients at all on the website I think I probably do want to track the ingredients somehow probably I don't think I will spend time unless there is some way to automate it which maybe there is I can see myself copying and pasting a list of ingredients now I don't really see myself even like putting him in a spreadsheet no good piece of the data models what you say how do you think man eats of the data model it would be nice to generate a list of ingredient or 400 that's not right I'm thinking about a liquor bot and Jason's got like the ingredients at the bottom in a related list of you know two ounces of this and four ounces of that and a half an ounce of such-and-such and that makes up the recipe that's the parent record to all those related records but that that may be going a bit beyond what you want to do here yeah I mean I think go ahead Adam depends on if you wanna track your ingredient stocks as well you have that related list you start consuming them then you can you can say hey this is what I'm cooking this week this is my stock generate shopping list yeah that's where the just what is a stockroom that's the and has consumables in it yeah that would that would they would play together if you wanted to go that way eventually if that's in the bigger vision maybe we do do something like that or we take the quick and dirty approach now and bolt it on later yeah that's my I think we do that for now because the the problem I mean liquor bot is great but there's only so many cocktail ingredients and then you know you could cook a single recipe there's 30 ingredients easily I hope those could be totally different than another 30 ingredients and that's you know that's already a lot with a predefined database of drinks and ingredients that kind of drove his data model a little bit yeah so we have a suggestion for overall time for the recipe or prep time and cook time I think that's a good I think that's a good thing most recipe cards have a flame you know a prep time and then a cook time so you can even to you know look at automating some of that little time let's do that so prep time someone was just talking to me about durations I learned a lot about durations in flow design directions today so let's go prep time good time you know right where to poke where it hurts still fresh back to the cooking that was well done one of the most active chance we've had bread well it's a fun topic because every everyone has at least interacted with food so even if you haven't cooked before you hey there could be that one person out there who is raised on Soylent that's true that's true [Music] alright come out you know what what else we need to know we have a we have a reference to recipe from the cook so we don't need another reference hear anything about required equipment that is a good one don't want to make a stir-fry without a wok when it can be fun to use to do a recipe they require something you don't have has been improvised Julio is asking did we did we get a rating on here or did we do want to do this we did not do a rating but let's do a rating cuz we can always start with like this could just be a rating where I say wow I tried this and it was terrible or you know hey this is what I want to try again or float and what is the difference between decimal and float floating point number if you wanted to average this I would say then we want to flow what is the difference between a float and F and figured at high yard that every time I did discover what was it when you're doing there was something floats do that you can't do it decimals oh it was currency I'm sorry when you have like numeric numbers and you need to do what was it summing them up there was something about yeah it was it was really nasty I tend to default to flow it's even for money but unfortunately you don't get the double precision every time well let's do I don't think i always use energy integer for anything that's a number but let's try let's try a float rating what else do we have in here about a difficulty difficulty is good I don't know that I would use that but I like the idea of that because event you know ultimately I would like to have a database of recipes and say you know what my one of my kids could do this one so I think that's a good one difficulty I think I think this could be a choice but I'm gonna choose integer so that I can then make it a choice ooh that's a good idea because I think I'm I'm I can't think of a specific use case but in the back of my head I'm thinking I might I may want to like average or add these or do something like that well difficulty is is generally gonna be your kind of like how we do our workshops and labs at knowledge you're gonna have three one two three or one two five just to glance at it and go not for the faint of heart today yeah all right I think that's good for recipe so I want to I want to get our other tables created how about author so we have source and source refers to what source would be either a book or a website or or you know I have some recipe cards from from mine and my in-laws that could be the source so what I think author could be you know somebody's interpretation of the recipe or you know if you wanted to go find all your favorite Gordon Ramsay's you could find them easier this way that's true and you could have a person that you know goes goes through different sources I like it let's do let's add an author this is one I don't know I don't know that I want to create another referenced a little bit there's a user table this is the that's right we can just create them user accounts Gordon Ramsay for the user table recipe I a blanket it always extends this user Jason wants a string I kind of want a string but we're gonna we're gonna reference user here you will notice that and most people know this but there's the import user table when you type user that's the first one that it shows up that's not the one you want you want this user I feel like I always have to call that out all right I think we're good let's create it so this was the recipe table we have a question how do you extend this user well you go to the global scope you get the table definition and you click the extensible button so when you go to coffee table you make it extensible cuz it's not out of the box unless you turn on I think CSM does that for you so there may be some instances where it's already extensible I just did that and that was all kinds of fun for my data model a couple of weeks ago I don't think I'm in a number of recipes yeah that's a decision that I just made so we won't we won't number recipes although we could alright so those were the big tables and then we had a couple other tables that so we had a fuel table so we'll create the fuel table real quick I guess we could have we could have extended and made feel a consumable let's just let's just create a fuel table here it is a consumable no it's that's a good it's a good question Jase it is a commit is a consumable I just don't don't think I want to go there so it gets a name and that's a string I think 40 characters should be good it gets a brand do we want to reference anything for brand underst all right let's reference vendors let's do it your type bender Oh bender what his vendor a company let's do let's just I have a car you go core community let's make you some more system table I am Incheon app this may be it for fuel so name without type for you on charcoal I do want to type where that's and we're gonna go choice I'm a guy made a choice field yet so drop-down with none I want wood charcoal yeah say you don't say guess it could be propane or natural gas station where I'm cooking and pellets naphtha electricity actually just got an induction burner to go in my outdoor kitchen just in in case I need it induction plates are amazing all right I think I think that's all of the things that I have ever cooked on like this for home brewing I'm sure I'm sure someone has done this specifically before but not that I saw feels really familiar brand type name all right any other ideas for with a few well the fuel alright I think you know what an active field on it active what would I use active for reference qualifier later in case you decide not to use that particular type of fuel that could be like a do I have a thing that can use this like I'm probably getting rid of my pellet smoker I was thinking if the name was you know Kingsford Charcoal and you said I'm never using Kingsford again the active flag just about every new table I make has some sort of active field on it yeah I think we will want to go back and add active to fuel so maybe do you recipe table too yeah that's true you can't you can't cook whale meat anymore perhaps you better deactivate well I can't track it in my app that's available publicly for sure so let's let's finish the app at this like for other reference names I can't remember where they are either so we'll finish the app yeah because we're also running low on time we have but it's it's a you know making these decisions at the beginning will affect you long term in your app whether you are doing something where you're cooking and you're from now I'm like I have to spend two hours and go back and fix this in order to fix my cooks or you know your company has to make some sort of big decision that affects a million records so regardless of how complex your app is I mean it could be you know just tracking some numbers that used to be on a spreadsheet somewhere or it could be something that runs your whole manufacturing procurement process that's really complex and has deep logic and scripts and flow is all over the place it it could be no code it could be pro code but the data model is always that foundation that everything sits on that's right so we have I just went ahead and did the standard mobile app creation I'm gonna do the same thing with workspace where I'm just going to say you know what cooking management actually I'm gonna I'm gonna make my workspace cook because I'm in two short URLs hab tabbed tab and we will do tabbed I haven't found a use case nod for it so the difference between them is that I don't get new tabs with single page navigation but I get a list of breadcrumbs that builds itself right yes yeah so four tabbed when I click on something that opens something I get it in a new tab and I still have my old tab which I generally like better and I think most people do I'm sure there is a really specific use case for the other one we'll leave all of the options here for workspace and we'll keep them all on the left as well one of the nice things that will happen with workspaces since we extended tasks well I guess it won't be that nice for us but generally because you extend a task you get a few different lists so I think we'll get some lists based on some like on assigned assigned assigned to me we type groups unassigned cooks yeah kind of funny when you think about it that way good work for a restaurant yeah all right supposed to be done and go to studio and let's look back at our so what did we get what did guided app creator create us here so we got a good amount of mobile stuff because we have a few tables we get some workspace we got access controls for all of our tables which is pretty nice and we got a bit of navigation but usually about three it rolled her no you don't have a role per table yeah I think I did this we have a cooking man I don't know what that one's all about that's kind of weird I wonder if I did something when I created the table I think as you create new tables though it's going to by default it will create a new rule for that table so you got to watch that I haven't really found a use case why you need a new role per table you need new ACL spur table but generally he falls into the category if I got my admin I got a user I've made that an approver it's the roles that we're already set up that you just keep reusing that's a good point yeah new rules per table you know guided app creator likes to do that so watch out all right so let's look at our cook table and let's look at some of those things so fuel we did create a fuel table let's go ahead and change that there it is oh no no don't do that it will create you a new one top one there we go alright and it has not updated yet which is good remember recipe we did create a recipe table that could be pedantic and say what's your ambient temperature metric or is it Fahrenheit or Celsius you need an ambulance well then it and then food did we create a no we created a fuel we didn't create a food table yeah just eat the fuel and then what were some of the other we could filter on Ralph removing jewish-roman matching on reference tags a good point show matching on reference locations you see on the first row doesn't have a red X I think I finally figured out why it dawned on me this morning if you change the sort order it will show up on fuel but the first one never has an X there's got to be some implicit rule that says every table must have at least one column so I'm not going to let you delete all columns yeah it's kind of a silly way to implement that but that's the way I read it I think that's right yeah that's a good that's a good color all right we only have a couple of minutes so one of the things I'm going to do is make sure that I have the display value on each of my tables I know I already have one on this because we extent asked it's the number I may change this at some point because numbers not going to mean that much to me maybe it'll be a date which may mean more and then let's look at our fuel table one of these I don't think we said one on so it was fuel so this is just one of the checks I always do after I'm done finishing the data model or after I finished the data model and then I know we set one on recipe which was the name so we will need what was the we will need to extend and create a new CI class for what we are what we're using to cook we will need to create a table for the food and one of the things that I like to track or I will want to track is the grade of the meat like for beef that's especially important if I'm you know cooking a vegetable I probably want to know like is it organic or not and that would be a good like you know does that matter and we could actually see does that matter so some things like that I don't think we'll have time to actually do that it'll be our we are at five - but I don't know you guys have anything anything we haven't talked about that you would want to track or call out or think about with this we've done in an hour do it we got a lot done in an hour we did we got a good a good data model going there at the image I just saw it all right to the recipe this riveting video all right it takes me into the slack let's let's just save it oh yeah the the Jesus image so yes way there go back to your go back to your main browser cabin standard UI oh you might be able to do it through properties in studio that might be a faster way oh yeah where is its settings I'm sorry file settings that's alright oh yeah you do want this like message do you want me just like it to you I think I got it downloaded a there's a field right I'll logo yep that's it alright let's hope I have I would love to see this show up on a flow somewhere Thank You Jase what a great way to finish off this this session than to add our I'm not really sure what piece of meat that is but it's a weird shape am role be an interesting Bonin pork butt alright well let me let me take us out of the screen share here wait I didn't finish my beer so here we go [Music] I think that worked correctly my beer back here alright well I think we were mostly successful with creating the data model for our app we know we created a few tables and talked through some of our decisions you know when do we do different things obviously I love reference tables and will default to that just in case I need it at some point but the one thing with reference fields is they are generally not quite as user friendly as a choice field and people need you know as a postlude is there an opportunity that you can see for a many-to-many table I think yes so I have thought about many too many for recipes if I'm using like different pieces of multiple recipes which is something that I tend to do you know I could be cooking more than one thing although you know I may have two different cook records for that but there are multiple fuels there's a there's definitely a scenario where you're cooking with charcoal and you know wood chunks or for your you know you've got wood chips on a gas grill or you're you're searing or reverse searing something which reverse tearing is wonderful where you're you know doing two different things so you know the the device you're using I think definitely could be a many-to-many yeah should have a meal that contains multiple arrests with these or cooks ooh I like that I like the table I was thinking of a cook you know like a parent/child cook but I like a meal that has multiple cooks on it because I that doesn't like a many-to-many to me yeah nice I like that one so need to add a meal table so yeah thanks for being here guys so before we before we leave we need to to rate our beverages so we'll start with with Adam we rate on a 0.25 scale when we achieve success it usually gives it a little bit of a bump I think we were successful today I think we were so between 0 and 5 1 & 5 0 0 yeah we have had some zeros happening but yeah we'll start with that so I give the same amount of summary la3 remind me again which Sam Adams was that it's the summary of citrus wheat okay mm-hmm so my heavy would go along with that it did not throw any fruit in here no oranges or anything into the treaty's Baltus I like this this is nice it's I'm gonna give this a solid 4 for 25 with our victory win 4 to 5 nice well I had the barrel-aged in us and gun and it was I'll give it a 4 with the victory bump it was it was pretty good I was expecting a little more from it but that's that's fine yeah so we've got we set up our data model we will definitely follow on I think we're we are not going to have a show next week because of the July 4th holiday in the US but the following Friday I think we will revisit this topic as kind of a before and after you know July 4th cookout type thing but we'll revisit this and maybe you are a rest integration with the Wi-Fi thermometer you've got a production deadline you've got a production deadline to get this done by the fourth of July I won't that's right that's right you can test them so maybe we'll do that one maybe we'll all be outside for that one who knows who knows will do for that but thanks for joining everybody thanks Chuck and Adam and everybody have a have a good weekend

View original source

https://www.youtube.com/watch?v=UTVD9DaM2XQ