The note versions table could look like this:

```sql
... (
    note_id bigint NOT NULL,
    version bigint NOT NULL,
    status public.note_status_enum NOT NULL,
    "timestamp" timestamp without time zone NOT NULL, -- more standard name 
would be created_at but that could be mixed up with the note creation timestamp
    latitude integer NOT NULL,
    longitude integer NOT NULL,
    tile bigint NOT NULL,
    user_id bigint NOT NULL, -- I guess we're not going to call this "author", 
that won't sound right for non-initial versions
    user_ip inet, -- if we keep anonymous notes
    ...
)
```

We also need to choose between
```sql
    visible boolean NOT NULL,
```
and
```sql
    redaction_id integer
```
depending on whether we want to use redactions for hiding note version.

If we want the versions table to be similar to element versions, its primary 
key should be `(note_id, version)`. But that surrogate `id` from 
`note_comments` is useful for sorting by last update, see 
https://github.com/openstreetmap/openstreetmap-website/pull/4532#issuecomment-1992379385.
 I'd like to keep it on the versions table in addition to the comments table. 
Element version tables don't have it, but I'd like them have it too, see #4660, 
but I'm afraid of that being a migration that is too large.

-- 
Reply to this email directly or view it on GitHub:
https://github.com/openstreetmap/openstreetmap-website/issues/5294#issuecomment-2541604426
You are receiving this because you are subscribed to this thread.

Message ID: 
<openstreetmap/openstreetmap-website/issues/5294/2541604...@github.com>
_______________________________________________
rails-dev mailing list
rails-dev@openstreetmap.org
https://lists.openstreetmap.org/listinfo/rails-dev

Reply via email to