diff --git a/schema.md b/schema.md index 8e2f313..7f16d12 100644 --- a/schema.md +++ b/schema.md @@ -9,14 +9,19 @@ preferably using Cassandra: A distributed NoSQL database * `kind` (event type, e.g., review, article, comment) * `tags` (array of keywords or hashtags) * `content` (text content of the event) + +This duplicates the relay, so should only be relevant kinds (eg nominated Review kind) + 2. **User Reviews**: * `event_id` (foreign key referencing the Events table) -* `product_id` (unique identifier for the product, eg `wine_id` or `sake_id`) +* `product_id` (unique identifier for the product) * `rating` (numerical rating, e.g., 1-100) * `review_text` (text content of the review) * `tasting_notes` (array of tasting notes, e.g., flavors, aromas) + 3. **Wines**: -* `wine_id` (unique identifier, type/style/characteristic, EAN/UPC, sku) +* `product_id` (uuid) +* `wine_id` ( type/style/characteristic, EAN/UPC, sku) * `type` (white, amber, rose, red) * `style` (bubbles+fizz, table, dessert, fortified, vermouth) * `characteristic` (light aromatic, textural, fruit forward, structural & savoury, powerful) @@ -36,8 +41,10 @@ preferably using Cassandra: A distributed NoSQL database * `closure` (cork, crown-seal, screwcap) * `price` (NIP-89, NIP-99) * `image` (optional image URL)cellar.social + 4. **Sake**: -* `sake_id` (unique identifier, designation, polish rate, starter, yeast, EAN/UPC, sku ) +* `product_id` (uuid) +* `sake_id` (designation, polish rate, starter, yeast, EAN/UPC, sku ) *` country * `region` * `name` (label) @@ -51,8 +58,10 @@ preferably using Cassandra: A distributed NoSQL database * `vintage` (year, nv, mv) * `price` (NIP-89, NIP-99) * `image` (optional image URL) + 5. **Spirits**: -* `spirit_id` (unique identifier EAN/UPC, sku) +* `product_id` (uuid) +* `spirit_id` (EAN/UPC, sku) *` country * `region` * `name` (label) @@ -76,14 +85,16 @@ preferably using Cassandra: A distributed NoSQL database * `roast` * `price` (g/kg/ton, NIP-89, NIP-99)) * `image` (optional image URL)cellar.social + 7. **Articles**: -* `id` (foreign key referencing the Events table) +* `event_id` (foreign key referencing the Events table) * `title` * `content` (text content of the article) * `author` (public key of the author) * `tags` (array of keywords or hashtags) + 8. **Comments**: -* `id` (foreign key referencing the Events table) +* `event_id` (foreign key referencing the Events table) * `parent_event_id` (foreign key referencing the Events table) * `content` (text content of the comment)