Thanks Sean, I've noted your point about primary key naming.
TaskNameList is a lookup table to associate lists, list names and tasks with each other. This is the part of the design I was unsure of. Take list id 3 for example: without TaskNameList, there is no way of knowing that it is has a name of Housekeeping and tasks of Baking cookies, Vacuum, Wash car, Laundry and Tidy garage unless foreign keys are added to the listname and task tables. But that means duplicating values in those columns, right?
My understanding was that lookup tables are are good practice. However, I've not seen a 3-column look-up table like TaskNameList. Perhaps it is better practice to replace TaskNameList with 2 2-column look-up tables:
ListName
listidlistnameid
11
22
31
ListTask
listidtaskid
11
12
13
14
15
26
27
28
29
210
33
311
312
31
313
Thanks for your advice/suggestions. 🙂 I don't have DDL yet as I wanted to get this right first.