DEV Community

Discussion on: What is the best way store column metadata in SQLite (like, is JSON or is Date)

Collapse
 
1e4_ profile image
Ian

Got any examples of meta data you want to store? What's wrong with having another table?

Collapse
 
patarapolw profile image
Pacharapol Withayasakpunt

I ended up with date_, set_, dict_ prefixes.

      dict_media    TEXT NOT NULL DEFAULT '{}',
      set_cardId    TEXT NOT NULL DEFAULT '{}', -- I wonder if this can be indexed
      date_nextReview DATETIME NOT NULL,

and, how to use

    JOIN deck   d   ON json_extract(d.set_cardId, '$.'||c.uid) = 1
      for (const k of Object.keys(r)) {
        const [k1, k2] = k.split('_')
        if (k2 && r[k]) {
          if (k1 === 'dict') {
            r[k2] = JSON.parse(r[k])
            delete r[k]
          } else if (k1 === 'set') {
            r[k2] = Object.keys(JSON.parse(r[k]))
            delete r[k]
          } else if (k1 === 'date') {
            r[k2] = new Date(r[k])
            delete r[k]
          }
        }
      }
Collapse
 
patarapolw profile image
Pacharapol Withayasakpunt • Edited

Nothing wrong, but I want to know the standard of notifying that,

  • This column is JSON serialized, or Date serialized, or boolean serialized.
Collapse
 
1e4_ profile image
Ian

Really depends on the data. I've not had a use case yet for JSON type