You'll show the record from fetch func. While you fetch the record, remove all the data and then append and reload the tableview.
So every time when you call the fetch func it will clear all the previous data and append the new data to your array. So duplication is avoided.
func fetchPeople() {
do{
self.items.removeAll().
self.items = try! context.fetch(Entity.fetchRequest()).
DispatchQueue.main.async {
self.tableView.reloadData()
}