Dubious Database Design

Video in TIB AV-Portal: Dubious Database Design

Formal Metadata

Dubious Database Design
Title of Series
Part Number
Number of Parts
CC Attribution 3.0 Unported:
You are free to use, adapt and copy, distribute and transmit the work or content in adapted or unchanged form for any legal purpose as long as the work is attributed to the author in the manner specified by the author or licensor.
Release Date

Content Metadata

Subject Area
Everyone has seen plenty of articles about how to design data storage solutions well - but nobody is getting up there and talking about how bad their storage design is. Rather than just listen to more things to do and vague reasons why, come and see some truly awful examples of storage design, and the lessons we can learn from it. What happens when you end up reimplementing indexes? Why shouldn't you turn off durability? Why not make a table for every user? And how can you render templates purely in the database? All this, and more, as we delve into the realm of datastores and examples both historic and current that you can learn from, and hopefully come away with a better idea why the rest of us design things the way we do.
Computer animation Multiplication sign Reduction of order Bit Coma Berenices Cartesian coordinate system
Point (geometry) Existential quantification Divisor Sequel Multiplication sign Execution unit Port scanner Mereology Event horizon Rule of inference Computer icon Computer programming Goodness of fit Crash (computing) Causality Meeting/Interview Forest Form (programming) Computer architecture Focus (optics) Counterexample Key (cryptography) Software developer Gender Physical law Sound effect Human migration Computer animation Angle Universe (mathematics) Pattern language Right angle Resultant Asynchronous Transfer Mode Spacetime
State of matter Multiplication sign Range (statistics) ACID 1 (number) Set (mathematics) Parameter (computer programming) Client (computing) Function (mathematics) Mereology Proper map Front and back ends Facebook Mathematics User profile Roundness (object) Semiconductor memory Different (Kate Ryan album) Endliche Modelltheorie Position operator Physical system Email Relational database Software developer Structural load Electronic mailing list Sound effect Infinity Bit Variable (mathematics) Radical (chemistry) Process (computing) Hash function Website Normal (geometry) output Self-organization Summierbarkeit Text editor Right angle Quicksort Resultant Spacetime Row (database) Web page Point (geometry) Read-only memory Slide rule Server (computing) Identifiability Computer file Observational study Token ring Streaming media Mass Login Number Twitter Revision control Internet forum Operator (mathematics) Authorization Energy level Multiplication Scaling (geometry) Information Key (cryptography) Database Extreme programming Software Query language Personal digital assistant Statement (computer science) Table (information)
Email Identifiability Run time (program lifecycle phase) Military base Multiplication sign Software developer Translation (relic) Database Computer icon Number Human migration Facebook Type theory Computer animation Query language Selectivity (electronic) Table (information) Family Exception handling Row (database) Spacetime
Sensitivity analysis Mehrplatzsystem Disk read-and-write head Data dictionary Perspective (visual) Computer programming Front and back ends Inference Roundness (object) Lattice (group) Feasibility study Single-precision floating-point format Physical system Exception handling Touchscreen Relational database Software developer Stress (mechanics) Bit Staff (military) Instance (computer science) Arithmetic mean Process (computing) Data storage device Pattern language Figurate number Quicksort Reading (process) Web page Point (geometry) Twin prime Sequel Computer file Variety (linguistics) Motion capture Letterpress printing Similarity (geometry) Translation (relic) Control flow Rule of inference Machine vision Number Product (business) Session Initiation Protocol Frequency Software design pattern Authorization Energy level Selectivity (electronic) Codierung <Programmierung> Computer-assisted translation Form (programming) Standard deviation Scaling (geometry) Graph (mathematics) Key (cryptography) Information Compass (drafting) Content (media) System call Word Software Personal digital assistant Query language Network topology Video game Game theory Table (information) Pulse (signal processing) Code Multiplication sign View (database) 1 (number) Combinational logic Sheaf (mathematics) Set (mathematics) Insertion loss Mereology Proper map Formal language Facebook Mathematics Spherical cap Bit rate Modulo (jargon) Moment (mathematics) Connected space Type theory Volumenvisualisierung Website Self-organization Normal (geometry) output Configuration space Right angle Procedural programming Resultant Row (database) Server (computing) Functional (mathematics) Service (economics) Observational study Real number Data storage device Gene cluster Graph coloring Coprocessor Field (computer science) Power (physics) Revision control Causality Operator (mathematics) String (computer science) Gastropod shell Integer Time zone Multiplication Gender Poisson-Klammer Projective plane Expression Interactive television Memory management Variance Database Human migration Cache (computing) Particle system Database normalization Computer animation Logic Blog Canadian Mathematical Society Speech synthesis Transmissionskoeffizient Object (grammar)
of course but at the end of the and the and the and and the and the the the the the the the uh IP ch by very much reduction just the I'm back in this year effort was an com um by had this time there was told you a bit more about not applications that they in general and
as a little interested myself West as mentioned by Robert south migrations ultimate gender migrations and I am here to use of where that engineered event right we have appears to stem a hold you can visit available people and and I have a single hatred of my sequel which is not it's somewhere here is actually less passion ontological I used to so if you're looking for that the the to address here it is a common thing I found especially when I was young younger mode unit of the is this idea was saying just do this and I we do things this way and often there's no explanation why people are you should you should just do these pattern and that let universities of public like for both learning about that so that it's not all the toilet OK which is designing the fact is we normalize like this and sometimes you don't quite get back story so when they're trying to do today is is show you what counterexamples I'm going to take a so knowing different ideas and is run through with them until we get to a point where actually turns out what the problem with that is well is saying that and this is all part of what I call and failure so the so I told icon this year and that's about it is called welcome program 11 pilots and a big point about talk is failure is an expected things and in particular on 1 of the things will both aviation and in some of this is that every rule every reason that you see something's happened cause that so in aviation every little and accident duty happened to bring that winter effects like every time a crash instant happens we look at the results and institution in lawmakers and books is a pattern again and in some development that not quite as coherent and people happier rental specialties that a lot of accepted knowledge is there for a good reason because people decades and decades of forests have been through the same stuff they've been through the same wheels the romances so let's come to the 1st example here which is recycled spikes log now space logo is a way of digitizing the well he was of the written transcriptions all the well yeah between the Apollo military missions from NASA in the seventies and sixties ladies and into but subtle now the only form of these rooms and was a stand angle badly tight rated PDF so let me know over time 2 in the eighties stuck into focus on when NASA and about 20 years a on comes along scans the then stand right and then angle that have to read the the concept through them yes also work so to call that be cleared up we put into the method I now there are 2 key factors with space law and the development the first one so it excuse myself is the space law was written
in a week here and this is for are from 4 o clock uh on the on knee in the UK FolkRank is unique it is a Napoleonic era see fault them this closely here floods so high tide by city from the entirety of the island's very small we island even will end to end but has units um and even then by the whole thing isolates off high tide is a wonderful place them goes up by the Nazis and able to swallow the key thing is that it's piloting called that that falls and therefore is a feeling where you go somewhere a week as a very intense week of writing a single thing and in the week which is my excuse for the rebound architecture rupture and so
the about space slope is that it's new value old data this is in the change had been planned so that and so we can be pretty sure that with this data is pretty much read-only forever because once mission has happened the transcripts and change there's no user features I highly recommend you make a slight the user features is great because many that's nice moderation is the span just sits there and prevents the world and mentally and it's also somewhere else let's the panic statement that while it's read-only what's really good at reading stuff acid various is greater this and that is sum the faster reading operations because you say Acadia me and so we took all the data we split into different chapters and select out off his entry is going on the moon argument about his keys the look great while not what benefits of course studying pagination so it'll but every entry into its own key as we can load and the don't know the guarantees still fast amid load 50 them time to pagination that by perfect them and we know we assume the numbers incremented and in nothing like that that effect cool so now we have pages that you want to get it right it's still pretty fast that's fantastic then you have a problem at all actually we don't have purely numerical identifiers and so we to give each to them the school which is its position in the chapter and then query which keys we want these names by range by school and then take that means we get back and then put back into the multi get and then do that and then well so we would need to get the details in the pictures each speaker so and then take will be speaker names not result set and then make them into a list about list against another collection medicine get this from that and good reinvented is selected point and this is about I doing this let the joining of from a table and of course is much slower than relate place was because they can't do that relations in memory and so to this day space looks still runs on this truly special of the information that you it's a it's certainly fine and and there's advantage in front of it because it's not necessary greater doing things like showing you random pages but it does handle but if this is a place where a normal agent database within have been the the better of the solution and we were blind to that reasoning we got to the end like all we are with you should pick this you know 4 days ago but this now they said we have to leave it like 3 hours and politics the so some unique situation and this comes into the 2nd part of this is like people like to ignore joined and this is this is this is a bigger thing when longer DB and things were much more popular and people have this impression that joins the really bad ones she was any person does relational database stuff and then a joins a very important part of the whole thing but now joins the slide and the Fed joint offline so let's assume the joins a really goal so that's what how 3 do stuff so we have some documents the school absent from host banned by myself and a few other authors and we have some of the radical sodium out of rehab habitat have real names you have like they joined that kind of stuff and then let's to do is want to show a pages for the so what do is we want to take on strong posts and for each 1 of them we will define the corresponding also human input in put in place the them of the 1st to do this the naive way is to for every single post scan the entire thing to find 1 infinite I scan and that is very so that n times and operations now you're not to developers as I know this because you will hear wonderful people so you of course go up Andrews obvious we can take 1 of the purposes of sort of affected said what has had last example is T 1 query with that is right so what we can do now is we can stand the posts we can then build extremes as a case for this post has this forthright D and then do 1 bit also look up and then take the belt result and put all those details back onto the pipes they're pretty simple you that hash join will and this this is joint does joined 1 is better this is not hunter round trip across the network and so when I see people reinventing this like that's like people a joint is um but it could be that result some of the men 100 and well documents stream that other documents OK that you that that the is inside the forward price this is kind the recommend when doing stuff the now use but the post everything is everything is great and that's following Intel out there so conflict you see on forums is a dataset that native person was last seen the so let's put back into all with the record now what this means whenever I wouldn't your site you have to scan every single post in the entire database on on every single ever written you have they that record to be the right thing and you made the sign in process potentially 52nd minute long have been around for a while and and that and that and this is by normalization
exists right so as long as like if you've been there a whole you will have come across this little problem like I have in the past and gone up that we do it that way but it's a very important observation of like you might think that I'll be watching these names but once the blue moon occulted up at the low other things on the user can be very rapid-fire change and you make every single change in that talking on my table essentially very very slow another 1 the is that the sum the blindfold them so 1 would like Asoka 98 before we required by the way and 1 of the things we have landed we still and it is a very wonderful sets all uh cached ready studies and significance of this is better than the 1st example was the thing that should be writers and so that can we take our dataset we won't have few key things like well you the the speaker schools whatever and this is like some clustering information we put into right ladies insights into output but the unfortunate thing is various police in the past and monitored in the past as well and when that was happening they had this you know that status saving system than either of them degrades the red is when a meticulous this it's in the midst generally shown to persist it would write a bunny say file to better just that finish writing I finish writing it looks good that it would lead not say file and moving you want to play fantastic that means we run out space or rather than you have less than twice through this space for the style because the try new file you run out of space to write a whole new version filed editors just doesn't write and that in the wind passes happening isn't or other BDE can go setting requested kept serving these were memory and so the states which is going to memory not be existed and had no idea what we can have mounted time that you do not and and so of course common that that server reboots flowering so it's fine we lose like 6 months the cached because that data was only memory was never persisted and thankfully user rebuildable and a couple of hours from our on it's all there if you if something more valuable than that we're going to talk to me again I'm on a path supported at what the exogenous level less likely that and the other in the whole of was the remember the police abuse were only be used to prevent space just corrupted and files it wouldn't even try and here so that I have some effect as well above the level the amount of variable space like give you a dataset and that of room because you do not want them stopping to set requests will just couplings and or even worse some only have just keep ongoing and you think it's fine but it'll just it it'll it's just the single essentially saying be aware of you assume example of how the vast and it's only have so that right pays that might organizers now our system is much more robust and this is why we do a lot of about the if we were like young and naive we could do it like this we could do a query find their unpaid organizers the we did that and say this was being processed was obviously this is a crime job belong to it and what once and I I sympathize 3 local biomarkers processing and then we could write as an API that they can use and account numbers on so this many dollars and then when Michael that's at the model was paid because what happens if you database isn't is taking rather sending well you know the markers processing in painted and so will conduct continuously he finds all the clients who have not paid continues the pay the money which as you can imagine is not great but we will see this that we have proper locks in place of writing systems a and B that like if you do it naively were didn't have money so is isn't it the other end of the scale so previously been people who like well this normalization daily stuff it's a bit much and then becomes a person I will levelization I tables 11 so much we can make a table for everything but this is me 3 years ago as outlined landlords then married hats when I joined it was just which of the detection we like the we have you know some parts was not linked in at Facebook the old social I just have that you can sign in with this new any number of things I right now these different backends and things like the e-mails that they would you know and the mass of infinite face of fate tokens to maintain that each because of wouldn't identifier's assuming table for every single 1 sounds fine now the age of 1 this is when you try and show some user profile pages overlapping sets it to the query every single table and that OK well you have an invariant never 0 and an account of 3 gallon captured to visit accounts Twitter that does not too bad effect 6 7 queries on on a given single-page Logan fine because being you know the methods used in the 1 table and the problem comes when it then this page so this is a speaker all directed Peyton landed and if you notice that their supply Conklin people these
icons show that will be held they have assigned to land but in particular yet have the sufficient capital leading account that means every row here we're doing a number of select queries 100 % that for and so this quickly spiraled into and this we have to that to 7 queries around this table and that can kind of issue we can't really and it could be a good thing makes what could be a simple single flat select into a much was prospect um and and this implicatives while find and fix and there the and the user that it isn't magic it can't just if you get more tables kind of promise a database on the use sensibly your family you find Compton developer I understand that table cost space they cost time that meant for querying things the separate and so the road the translation to bases have a single table with a tight commented that out type e-mails quite went into Facebook and then like identify column way like you put the monkey thing love or in a single query that we didn't know that the times the and as I have from this you have peasant who really loves tables and so I have been developing South migrations for too many years and I and and the Ökologie males not only know how to satisfy the world like the cable except for the ones like and you have to pay the extra mother playthings axes is I want to make people at runtime and no into this is this
picture it is so important that I people
craft then by 18 is a very common question people like how they find some h and a column of language so know this is what gender motivation example like you have another language site people answer content in multiple languages so naturally people sizes and to store 1 because of 0 1 the tables in cases like all that is in the initial is the French and sometimes I had he becomes mean go while we're doing kind of a White label highest solution but we want to have like a whole set of tables have customer with collection is how we customers you find have exactly um and so the first one is that that is CMS we want people not random users in your organization villages kind columns by clicking buttons in the back and the unless it is rather than just sit in such a manner going why um so let's ignore these examples is language so cellular clumping language and say you become a site like Facebook that has a global reach the there are approximately 300 400 large variance that you always see like usually run the country the southern regional variants i've example there's British English and American English and they're different like you spell color differently than in British English they've been met traction level as you on make translated properly so you've not got just language changes your local changes and imagine you have a couple of calls the table looking at home with over a thousand possibly 2000 columns that's not sensible like a database isn't gonna be happy about that in particular and if you're just trying to select from a table and do like column restriction is that try send you back every single column every time and that's the really you really have a network connection is laid out or say don't do that um if you don't want to lose will then be very wary of this but make sure you stop values and just a college actually want requesting everything even then a regular if you didn't do this because even if you are in columns if you have the wrong database must equal and they have article by the column and column is very expensive attached to rewrite of storage revere and some tables eventbrite can take days and policies sometimes because the use of so many such data the tables and these must equal much to my dismay um and on you could consider the like sure you had a column but if that's interactive things like if you have a web page we think about and answer column we have the page take like potentially house to return was about to come up with the twin that you could consider the right hand column the necessary cheap and fast and it can but can be table locks in case that was kind of stuff and perspectives as usual does a lot better because they often will let you get away with it now and again but it's still tricky and so I can recommend that you do is you I the story all transmitters that has like Jason blobs if you if you retrieved from with adjacent level what by language so example impose great you can select just feasible globin Jason and page similar in in postgraduate say OK this is this this field is type which is page story of you is this US this FR cause this and if you say you select the language nothing all that so generic ways have a and C are the value of of unity stands for it which is a table this like OK this is constant this is languages is value and joining such things as that byzantine pretty well and I'll say you have a headache and trying to look at this game you're not having a score of of screen like 3 miles down the street the and the romances this didn't have to me but thankfully that is the co so this is a problem because you get a gets really good engineers so even the site the site has a very big profit right like your 75 1897 pp like hit in the cache um and you're feeling pretty small and given that you've got like you know you you will die out service led by given select send it and pass the light you know you know that the money you have cache-hit rate jingling fantastically well like good engineer to job however I mean people are finally come in and make this caches go away they have a failure they could just stopped working but let's invented is lost and have only so in the case of talking about a power failure so was made and they remain capture they lost the data now we have this problem where you money sensitive sentence the with the 90 % cache-hit right that means that never cash you got 10 times the traffic from infants cancers what happening is you know right and that is in a panic when the cache is among the tension droughts and then a suitable to get at the end of the is overwhelming servers with 10 times normal traffic and your speech round and even worse as soon as you hit the cap on those servers to stop after landing plea about levels so that 1 of the sentences that there was an open and it becomes this immense power situation that's just really hard to recover from they can take hours Republic like cash and so 1 thing we do that we put builds out is the bills actually free will catchable go for the light just about this a smaller version of something happening but it's very so the not the thing because it can happen to you with a really well planned performed on system like you have to think candle system handle what what are the cats scale in a few minutes that's often dual parts of the world you have respect Hastie with internal features from every period all or 1 of those things so you some Tibetan mind the next
thing is something called the optimist so we had to miss it is a very what does it enthusiastic about the mountainous goes a k up until the companies now unknown doing caching great stuff and reviewed bunny start up small company agency we only have to build a new project and so I and think will envelop previously under these will once we have gap postgraduate a shot it because was scale Matija we have a lattice of research we have reactor stuff that we think is inconsistent but we can do with storing them registers like some cash slashed they still work we have a flat files like lobbying in people blobs and staff and do all of these things at once them and see it seems very attractive is a better at the base of 10 the situation we like how well they will shine the as a developer like at least I am and this drove them off to a flying to like it's new data storage that wondering to what it like and put this in the site installed in the great and that 1 of the things that I needed in particular was that we weren't allowed to have a data store that removing the previous 1 is the 1 the 2nd because sure you have these specifiable 64 datastores so of course full redundancy right you go back up so will the call a case that's that's what level we would be much higher than it was and then that happens if any 1 of them dies likely is a new project you haven't really builds its the site can handle going away w know what should happen if latitude here down to use your search published and justice which but of course what happens is plastics such as quite good a lot of things is good about doing big aggregate pages 2 7 1 will homepage of such as well and then would build locus of this intermediate height of such as well I just have to maintain is be the main view so you've made by such a key a key heap of scientific advances are a major loss this in various like say all these registrar sections so that's what it is like the crucial problems like and what you've done is a literary careful you make every single while patterns into a single point of failure because of that thing goes away some crucial part of like eyes In a you true show like some other person like if their pet project aligns reimport marketing push whether it was crucial to that C have so consider this thing where show no data stores is generally falling and particularly if what your problem is isn't change to an existing store very well to say like you know you're trying to put a graph database the across so a strong evidence like post-processing can do that so think you try to do it they can do it if really publicized cable to forms inference failed to have proper stall that's fine but it's not free every story you add is extra redundancy where PicturePak up to match was working in not react space because of the fall you vendor and make sure that like it never goes down and it's just make yourself Syria bigger so like if you're predator company really shrines 1 or 2 things is a lot easier when it's 3 in the morning and 1 of goes down because that happens at much much less time within to and it's ready supposed wrestling both things a pretty much solid and so that you would have a lot less than than that's reliable stalls lexical that's fine for that he good that it will be good I stand optimally and then this comes with considered pulses in which I've seen quite a lot is we will have angiogenic encourages gender as a primary key fields as including printing integer and in particular uh it has this so the wonderful thing as an you should add more records increments of all who live incrementing means and the people there great so we have this up that means that the highest value primary key is the most recent 1 room I mean the subtree right so 1st of all if you're on precise ordering they're all different pages interviewed about 100 times so each time some so for example if you're in a cluster that not true but clusters a problem because this works on a single instance but you quickly realize that that's increment is a really feature to scale and the point where which entire software stack this for them to just make sure the numbers altered would not be correctly because if you think about it if you've got cluster like 20 database stored so this they have still agreeableness numbers have to not the same number and seeing that will be solutions but well OK what will cite each of the each the service in the real number modulo 20 and so this only direct ones honest to use monasteries all about walking stick around and it becomes very difficult to have numbers that you scale roughly correct so assuming this is is kind of a bad thing and that's what I've 16 it is the ID the numbers we muscles node will not have a pet things you should know trees numbers and I have this big thing in America been there isn't any thereby for the wall is making making a distributed another making strings because they're not they're not American can't do math all right there's many sets I can't add not I and 3 July did go some way for is a look at points that amount do some useful is in the 20 pagination by adding numbers to what are you doing and only after the case but if people want to in fatalities so the service of the mouse a mouse that when site go ahead don't have like this discusses page BIT want to readout request so let me start at number 3 thousand 104 and do front-ends will subtract the number that comes in a lot of figures out you see that's not right and so you if you want if you walk by these the variety way of how many rows you have use UUID like they're built into databases that basically guarantee not collide but you couldn't we have native support for the gentleman a it's it's great you don't don't sit there and B that person who does this the classical to a fair apart the says I was Python Ukraine many years ago and 3 or 4 years ago I saw wonderful tool and it becomes token those while we have to set of X this process the and has can run python but what about racing ahead querying to and later they stink doing views when we use 1 it right there and consider and pose with has functions now have some problems with functions and so of the queries and promote and myself for a particular will like we recognise operations as basically functions that you can run the a detonator out pages collect select at page and in brackets stuff stuff stuff stuff and the idea is it's meant to encode compass logic and the database happens there the problem is that the you probability all I can write the code isn't envision trucks in the database and you put in a migration system work and to have the troll and even then had a right properly and it becomes a whole mess but that signal was about this is about python function in people who is slightly over and I say that is used in production it's such a great thing have to share anyway so that functions you can call In particular into templating these by functions and so if you will say particularly of enthusiastic you could go well we can when the templated straight database but why would we you know what use ginger in in applied function and this point are thinking well under that's a silly idea known entity that will here is the kind that does this and even the go if you have people have is that right now on show you an on-screen so that that's a good showed you then bitterness at 1 OK G that contains a schema and a function that reputation of a database in insecure you can just you select render brackets template name page name it would end and outputs a pillar that's because are used as a common back which is the beneficiary of the page and even better because posters have rate expressions you could put your reading into a select query the user retrospection from the page and it's all for that and that's because the the coded multi-user deductions about express their for me and then it was unlikely the example of that excellent it's pretty simple we input ginger them Pierre Python modest simple things your standard system Python bath and we can just execute select query against another table in the think it's pretty great comes back as a dictionary of like column names the values we then just selected sentences from another table and those parts of the ginger like it would take the experience of that named as well as the shell isn't isn't Noetherian database and not interviews in here you could do like custom saving stuff you will laughter things don't you could that was so yeah that's might be and that you that the presentation and that this object but it was like what why is it going to come across learning it as this 1 doesn't if possible this to engender gender written by mostly sensible people myself the the the the cost the thing is there's a reason behind every rule right like is a reason why people join stress life from store procedures functions as a reason why we don't generally made Hazel a neutral type and all these have exceptions right but you should nothing in programming is a is a hard and fast rule and in particular the people just won't believe things will the technology changes in it's faster the better cities so you should and these invasion of or recommendation get you should ask why like a summertime don't do this just off the snow travel right and it's like good often does reasoning that is very simple reasoning when you if you come into a company that's been around for like many years that have certain Intel processors and design patterns and often there's a good reason why things are written like they all the has a new engineering is that is a dead zone times throughout the year that that that sort of pothole will actually the hidden requirements and the realize and then if the you let unitary relatively at the same Kondo colorful so just take a moment ask where I was it is it is a simple thing this and you take take the thing you think is good this try it see what happens so that result in sometimes it's not possible to let the quite scale the break but you knew close experiments is like what 3 my head and they just don't worry about that that that which and over doing that and don't dismiss for view that is research dismissed people humility doing like you know that there are many many engineers and like what been around the industry in programming for that long longer like the full of really interesting and useful information from the capacitor parts of programming you know that that's really recognizing everything the aside and sometimes there's not time to say well you the thing is is some of the so to just ask why basically thank you fat from questioned the so this is the question is basically like going company enough is fine but how do you get the notable but here in the 1st have heavy get embedded knowledge of don't make Hilton and translation stuff and I is the problem like part of it is doing this thing and talking to people and get explanations but part of it also is like you know you can still going to company in and be a positive you can be a new asks why indicating the wire be we don't know why and then they can don't ask why I use things to is a terrible idea so if you just sort of if you leave something better than when you join licenser cleaning up for all right so just by injured try and come to the things that you as a debate about that other developers for every 1 of us had a specialty we gain is study over the years that does happen and so the things it will be better and so don't be afraid to ask why and then provide like all other like this they because of the I think my but slowly but surely you can improve institutional it that way to make about OK so the question is what my feeling on column but Jason each stolen likes unified selecting in columns in relation databases and I like I'm a big proponent of uh mixing seen and secure well maybe things that's due on new projects and and the right hand is in given table there are certain columns that color what the ID column the name column particle creator date and that comes the part is important as I think that could be stored J. so what I do is if you increíble column make it a full column is just so that the use of feral things like the CMS by example of this right you have CMS where everything this page has a US-led has created data has an author has a list of that I have like a whole bunch of configurable things put those in adjacent while and for the chlorophylls as table rows many this this good collection of if you added that the complex changing well-timed time stuff is a nice blog Disney's gear updates and the cold feels your query and the word against all proper table rows and so I think that's a great combination and even without the proper Jason tied into but in my sequel volitional of peering into it is still so things adjacent use commissary queries them as vision is as as young was good but it still about schemas on the thank you very much if the the the the the my this