|
Совет, как организовать хранение данных?
|
|||
---|---|---|---|
#18+
Уважаемые, посоветуйте, как правильно сделать следующее. Есть таблица с документами-заказами и таблица-справочник рабочих на фирме. Требуется отправить на каждый заказ группу рабочих в составе от 1 до нескольких человек. Вот как в заказе в одном поле сохранить все id отправленных по нему рабочих? 1) Сериализировать в последовательность байтов и сохранить в блобе? 2) То же самое, но использовать JSON array? 3) Добавить новую таблицу (бригада) и в ней хранить состав группы, а в заказе использовать id бригады? Но тут тоже упираюсь в то, что заранее неизвестно кол-во столбцов под состав бригады. 4) еще какие-то варианты? Никаких действий (сортировка, выборочная выборка и пр.) по этому полю в заказе не планируется, только выборка полного состава группы/бригады. ... |
|||
:
Нравится:
Не нравится:
|
|||
28.06.2021, 14:28 |
|
Совет, как организовать хранение данных?
|
|||
---|---|---|---|
#18+
Или, если достоверно известно, что максимальное число рабочих в группе ограничено, скажем, восемью - просто создать в заказе 8 полей id_worker1, ... , id_worker8 с default=NULL и заполнять их необходимое число? И не париться с доп.таблицами, (де)сериализацией и т.п.? ... |
|||
:
Нравится:
Не нравится:
|
|||
28.06.2021, 15:25 |
|
Совет, как организовать хранение данных?
|
|||
---|---|---|---|
#18+
Добавить новую таблицу, хранящую ID заказа и ID работника. Если на заказ отправлено несколько работников, в таблице будет несколько записей. Соответственно из таблицы заказов поле работников вообще убрать. ... |
|||
:
Нравится:
Не нравится:
|
|||
28.06.2021, 15:59 |
|
Совет, как организовать хранение данных?
|
|||
---|---|---|---|
#18+
Akina, И точно, спасибо! ... |
|||
:
Нравится:
Не нравится:
|
|||
28.06.2021, 16:16 |
|
Совет, как организовать хранение данных?
|
|||
---|---|---|---|
#18+
Akina Добавить новую таблицу, хранящую ID заказа и ID работника. Если на заказ отправлено несколько работников, в таблице будет несколько записей. Код: sql 1. 2. 3. 4. 5.
Доп. вопрос: правильно ли я создал первичный ключ (из двух полей)? Или он вообще тут не нужен? ... |
|||
:
Нравится:
Не нравится:
|
|||
01.07.2021, 14:29 |
|
Совет, как организовать хранение данных?
|
|||
---|---|---|---|
#18+
Да как бы он не мешает. Пусть будет. ... |
|||
:
Нравится:
Не нравится:
|
|||
01.07.2021, 18:36 |
|
Совет, как организовать хранение данных?
|
|||
---|---|---|---|
#18+
LiYing Доп. вопрос: правильно ли я создал первичный ключ (из двух полей)? Или он вообще тут не нужен? А еще, в зависимости от запросов, может понадобится и индекс по полю id_worker или даже (`id_worker`,`id_order`). Какой именно - зависит от версии MySQL. ... |
|||
:
Нравится:
Не нравится:
|
|||
02.07.2021, 00:09 |
|
Совет, как организовать хранение данных?
|
|||
---|---|---|---|
#18+
miksoft Нужен. А еще, в зависимости от запросов, может понадобится и индекс по полю id_worker или даже (`id_worker`,`id_order`). Какой именно - зависит от версии MySQL. Спасибо. Запрос будет один - выбрать всех работников по заданному приказу, примерно такой: Код: sql 1. 2. 3. 4. 5. 6. 7. 8. 9. 10. 11. 12. 13. 14.
Для такого запроса в `order_worker` все же ключи созданы верно? MySQL v8.0.25 ... |
|||
:
Нравится:
Не нравится:
|
|||
02.07.2021, 08:35 |
|
Совет, как организовать хранение данных?
|
|||
---|---|---|---|
#18+
LiYing Запрос будет один - выбрать всех работников по заданному приказу ... |
|||
:
Нравится:
Не нравится:
|
|||
02.07.2021, 12:36 |
|
|
start [/forum/topic.php?fid=47&fpage=7&tid=1828020]: |
0ms |
get settings: |
11ms |
get forum list: |
13ms |
check forum access: |
4ms |
check topic access: |
4ms |
track hit: |
54ms |
get topic data: |
14ms |
get forum data: |
3ms |
get page messages: |
53ms |
get tp. blocked users: |
2ms |
others: | 13ms |
total: | 171ms |
0 / 0 |