• 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.