Как правильно хранить массив в таблице базы данных? - PullRequest
0 голосов
/ 03 октября 2011

У меня есть массив из 50+ элементов, который определяет, сколько часов было отработано за данную неделю.

Как правильно хранить эту информацию в таблице базы данных?

Моя первоначальная идея состояла в том, чтобы использовать разделитель, но текст слишком велик (280 символов), чтобы поместиться.

Кроме того, в создании столбца таблицы для каждого элемента что-то не так.

Идеи

Массив с использованием разделителя (запятая): 37,5,37,5,37,5,37,5,37,5,37,5,37,5,37,5,37,5,37,5, ...

Ответы [ 2 ]

4 голосов
/ 03 октября 2011

«Правильный» способ - сохранить содержимое массива в виде нескольких строк во всей другой таблице, каждая из которых имеет внешний ключ, ссылающийся на запись, которой они принадлежат, в первой таблице. Однако могут быть и другие вещи, которые вам подходят.

[РЕДАКТИРОВАТЬ]: Из добавленных вами подробностей я предполагаю, что ваши элементы массива состоят из количества часов, отработанных каждую неделю, и у вас их более 50, потому что в году 52 недели. Итак, что я думаю, что вы ищете, я думаю, что ваша текущая (основная) таблица называется что-то вроде «сотрудников», так это то, что в каждой строке должен быть свой уникальный идентификатор для каждой записи сотрудника. Таким образом, ваша новая таблица может называться «work_weeks» и состоять из чего-то вроде employee_id (который соответствует идентификатору сотрудника в текущей таблице), week_number и hours_worked.

0 голосов
/ 03 октября 2011

Похоже, отношения 1 ко многим.В этом примере tableA - это 1, а tableBlammo - это множество.

tableA => столбец blammoId

tableBlammo => столбец blammoId, данные столбца

Одна строка в присоединении таблицы Aна несколько строк в tableBlammo через столбец blammoId.Каждая строка в tableBlammo имеет один элемент массива в столбце данных.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...