How to handle inserting duplicate data?
- Dominant language
- Elixir
- Stars
- 15
- Forks
- 2
- PR merge metrics
- No merged PRs in 30d
Description
relates to #45
We have created a function in the adapter for handling inserting data into the database. This function will create a `cid` and `entry_id`(which we are considering renaming to `id`, see [here](https://github.com/dwyl/alog/issues/45#issuecomment-468755047)) based on the data passed in and adds them to the params passed to insert.
This will ensure that the `cid` and `entry_id` data is inserted into the database.
As a rule we don't want to insert duplicate data as it is a waste. We will use the `cid` value generated to check if the value is a duplicate and if so we can "reject" the insert.
This works well with the current set up. However, imagine we have a table `user` which has one column called `username`.
If our user is originally called `batman` but decides to change their name to `the dark knight`. This will work and we will insert a new row in the database.
Now the user decided that they want to change their name back to `batman`. If we try to insert this, we will get an error because we will be creating a duplicate `cid` value (which is obviously not what we want in this case).
### How do we want to handle this case?
- Should we create another column in the table that keeps track of the `duplicate_no`?
> We could have some logic that checks to see if the data that is being inserted is the same as the previous version that was inserted. If it is we "reject" that insert. If not we increment the `duplicate_no` value in the db. If we use this value when creating the `cid` value, it would prevent the duplicate `cid`s from being created. (We can come up with a better name than `duplicate_no` I'm sure. This was just an idea of a possible solution)
Please let me know your thoughts and if you have any other ideas about this.
Contributor guide
No contributing guide indexed for this repository
Assessment
This issue has not been assessed yet.