I am working on an existing database design. There is one table in which each row is created with only half the columns populated (the remainder are initially all
NULL, except for an
is_populated column), and later a single
UPDATE to populate the remaining columns (usually weeks to a month later). None of the data in any of the columns are intended to change after being populated (i.e. when they're no longer
NULL). Even though the system is quite old there seem to be many more non-updated rows than updated rows.
Let's say that initially there are 5 populated columns and 5
NULL columns. After the
UPDATE all 10 columns are populated. It's not allowed for the data to become unpopulated after the first
Is this truly a one-to-one relationship? Should both halves of the data have been initially stored in a single table or should they have been split into two? Are there any negative performance implications if doing a
LEFT JOIN on the first table's primary key (which would end up returning exactly the same structure) instead of querying a single table? If I was to create a similar structure in the future should I follow this design or separate the two concerns?