Проектирование базы данных SQL: как обойти хранение списка?

Например, чтобы получить текст из элемента управления потоком пользовательского интерфейса:

Private Delegate Function GetControlTextInvoker(ByVal ctl As Control) As String

Private Function GetControlText(ByVal ctl As Control) As String
    Dim text As String

    If ctl.InvokeRequired Then
         text = CStr(ctl.Invoke(New GetControlTextInvoker(AddressOf GetControlText), _
                           ctl))
    Else
        text = ctl.Text
    End If

Return text
End Function
0
задан Slaknation 17 January 2019 в 03:54
поделиться

1 ответ

Я знаю, что вы не должны использовать списки для баз данных SQL ...

Это неочевидно в современных базах данных. Массивы в Postgres действительно хорошо реализованы и могут облегчить жизнь. В реляционном подходе , описанном @lau , нет ничего плохого, но вы также можете рассмотреть простую структуру, подобную этой

create table routines (
    id serial primary key,
    name text,
    exercises text[]
);

. Пожалуйста, прочитайте . Плохо ли использовать массивы? в базе данных? , чтобы получить больше информации, которая может облегчить принятие правильного решения. Также обратите внимание на этот совет из документации

Массивы не являются наборами; поиск определенных элементов массива может быть признаком неправильного проектирования базы данных. Попробуйте использовать отдельную таблицу со строкой для каждого элемента, который будет элементом массива. Это будет легче для поиска, и, вероятно, лучше масштабируется для большого количества элементов.

0
ответ дан klin 17 January 2019 в 03:54
поделиться
Другие вопросы по тегам:

Похожие вопросы: