6 comments

  • stevage43 days ago
    Reminds me a lot of a final year group software project at uni. Instead of building a solution for our client we built a kind of meta solution, then ran out of time to actually solve his problem in it.
  • Artoooooor43 days ago
    From time to time I send this article at my job. Just as a distress call about our system.
    • Normal_gaussian43 days ago
      There is something to reading something from 20 or 40 years ago and having a professional existential crisis.
  • zephen43 days ago
    Perhaps a corollary to Greenspun&#x27;s Tenth rule?<p>&quot;Any sufficiently complicated database program contains an ad-hoc, informally-specified, bug-ridden, slow implementation of half of COBOL.&quot;
  • kristianp43 days ago
    I&#x27;ve seen these custom fields tables in a number of database schemas I&#x27;ve worked with in the past. It adds dynamism to a fixed table structure. I wonder how CRMs do it these days without having poor performance at scale?
    • Normal_gaussian43 days ago
      Being able to partial index into JSON has made this much more straight forwards now than ever before, but historically pre-creating empty indexed custom columns was somewhat common (leading to hard limits like max 20 custom tags), as was EAV (which arguably is inner-platform).<p>There are more solutions than these, but until you&#x27;re at truly custom DB scale with a specific problem here, these will solve it for you.
      • jiggawatts42 days ago
        I&#x27;ve also seen a system that instanced the database per customer and simply extended the schema with additional columns.<p>That worked great... until the <i>thousands</i> of instances had to be merged into a single unified schema.
        • Normal_gaussian42 days ago
          yeah, generally instancing a table per customer is an old smell indicating they have either a permissions issue (no RLS) or you&#x27;re using a db which doesn&#x27;t support partial indexes (which basically everything does now).
  • bob102943 days ago
    I&#x27;ve made the mistake of creating this kind of problem many moons ago. The dream was to have non-technical domain experts implement the product. I did not know at the time that this was a cursed problem. Probably one of the most cursed, in fact.<p>Putting it my sql based scripting engine took 2 weeks. Backing it out is going on 4 years now. Perhaps the biggest technical misstep I&#x27;ve ever made. It&#x27;s kind of like Pandora&#x27;s box because once the non technical people feel the speed&#x2F;control, they&#x27;ll never let it go. You could place a literal money printer on their desk as an alternative and they&#x27;d reject it if you took their new power away.
    • paulddraper43 days ago
      That seems successful.
      • bob102943 days ago
        If you are into constructing fiefdoms in places they were definitely not intended to be constructed, then certainly.
  • dvh43 days ago
    It&#x27;s 2025 why are you gluing SQL strings? Don&#x27;t even use it as an example!
    • zahlman43 days ago
      The post is clearly marked as being from 2006.
      • JadeNB43 days ago
        Also it&#x27;s from TheDailyWTF, not an endorsement of the practices there even in 2006.
    • recursive43 days ago
      Perhaps to facilitate a dynamically generated schema.