Добро пожаловать в форум, Guest  >>   Войти | Регистрация | Поиск | Правила | В избранное | Подписаться
Все форумы / Проектирование БД Новый топик    Ответить
Топик располагается на нескольких страницах: 1 2      [все]
 Создание таблиц  [new]
Bora2015
Member

Откуда:
Сообщений: 58
Здравствуйте! Как правильно создать таблицы для хранения данных?
Вводится уникальное имя проекта и набор исходных данных для этого проекта. По нажатию на кнопку происходит расчет. Т.о нужно создать таблицы для хранения имён проектов,исходных данных и результирующих данных. Т.е одному имени проекта соответствует свой набор данных и свой набор выходных данных. Набор исходных данных это просто одномерный массив чисел. А у выходных данных, по столбцам расположены набор чисел с определенным шагом ,а в строках соответствующее им значение.
30 апр 19, 11:45    [21875375]     Ответить | Цитировать Сообщить модератору
 Re: Создание таблиц  [new]
fkthat
Member

Откуда:
Сообщений: 1163
Bora2015
Здравствуйте! Как правильно создать таблицы для хранения данных?

Берешь клавиатуру и набираешь на ней "CREATE TABLE", ну и так далее.
30 апр 19, 12:23    [21875418]     Ответить | Цитировать Сообщить модератору
 Re: Создание таблиц  [new]
Bora2015
Member

Откуда:
Сообщений: 58
Вот я создаю таблицу в database desktop. Нужно ли под проекты создавать отдельную таблицу ,а под исходные данные вторую или может создать таблицу где первым полем будут проекты ,а остальные поля этой таблицы исходные данные?
30 апр 19, 13:20    [21875483]     Ответить | Цитировать Сообщить модератору
 Re: Создание таблиц  [new]
fkthat
Member

Откуда:
Сообщений: 1163
Bora2015
Вот я создаю таблицу в database desktop. Нужно ли под проекты создавать отдельную таблицу ,а под исходные данные вторую или может создать таблицу где первым полем будут проекты ,а остальные поля этой таблицы исходные данные?

По таблице на проект, конечно.
30 апр 19, 13:27    [21875495]     Ответить | Цитировать Сообщить модератору
 Re: Создание таблиц  [new]
Bora2015
Member

Откуда:
Сообщений: 58
По таблице на проект это как?
30 апр 19, 13:39    [21875510]     Ответить | Цитировать Сообщить модератору
 Re: Создание таблиц  [new]
МодальноеОкно
Member

Откуда:
Сообщений: 2144
Bora2015
Вот я создаю таблицу в database desktop. Нужно ли под проекты создавать отдельную таблицу ,а под исходные данные вторую или может создать таблицу где первым полем будут проекты ,а остальные поля этой таблицы исходные данные?


разрешаю
30 апр 19, 13:42    [21875515]     Ответить | Цитировать Сообщить модератору
 Re: Создание таблиц  [new]
fkthat
Member

Откуда:
Сообщений: 1163
Bora2015
По таблице на проект это как?

Ну, сколько там у тебя проектов. Вот и создаешь для каждого таблицу.

"Проект_1", "Проект_2" и т.д.
30 апр 19, 14:02    [21875532]     Ответить | Цитировать Сообщить модератору
 Re: Создание таблиц  [new]
Bora2015
Member

Откуда:
Сообщений: 58
fkthat
Bora2015
По таблице на проект это как?

Ну, сколько там у тебя проектов. Вот и создаешь для каждого таблицу.

"Проект_1", "Проект_2" и т.д.

А какие поля у этих таблиц?
Я так понимаю речь идёт о создании таблиц динамически? А если обойтись статическим созданием?
30 апр 19, 14:52    [21875598]     Ответить | Цитировать Сообщить модератору
 Re: Создание таблиц  [new]
Bora2015
Member

Откуда:
Сообщений: 58
Заранее не известно колич.проектов.
30 апр 19, 14:54    [21875599]     Ответить | Цитировать Сообщить модератору
 Re: Создание таблиц  [new]
полудух
Member

Откуда: планета орков, г.Зверополис
Сообщений: 728
пытай гугл вопросами "проектирование бд"
30 апр 19, 15:36    [21875633]     Ответить | Цитировать Сообщить модератору
 Re: Создание таблиц  [new]
Dimitry Sibiryakov
Member

Откуда:
Сообщений: 48131

Bora2015
Заранее не известно колич.проектов.

Так не создавай таблицы заранее. Проекты-то, чай, не каждые две секунды начинаются.

Posted via ActualForum NNTP Server 1.5

30 апр 19, 16:09    [21875670]     Ответить | Цитировать Сообщить модератору
 Re: Создание таблиц  [new]
МодальноеОкно
Member

Откуда:
Сообщений: 2144
fkthat
Bora2015
По таблице на проект это как?

Ну, сколько там у тебя проектов. Вот и создаешь для каждого таблицу.

"Проект_1", "Проект_2" и т.д.


предлагаю создавать таблицу под каждую букву в имени проекта
30 апр 19, 16:15    [21875674]     Ответить | Цитировать Сообщить модератору
 Re: Создание таблиц  [new]
fkthat
Member

Откуда:
Сообщений: 1163
Bora2015,

Чо, наверное, весь семестр вместо лекций по РБД пифко пил? Ну так вот она, расплата.
30 апр 19, 16:59    [21875760]     Ответить | Цитировать Сообщить модератору
 Re: Создание таблиц  [new]
Bora2015
Member

Откуда:
Сообщений: 58
fkthat
Bora2015,

Чо, наверное, весь семестр вместо лекций по РБД пифко пил? Ну так вот она, расплата.

А что похож на студента?
30 апр 19, 17:32    [21875792]     Ответить | Цитировать Сообщить модератору
 Re: Создание таблиц  [new]
Serguei
Member

Откуда: Papua New Guinea
Сообщений: 680
Bora2015
А что похож на студента?


Да похож. И причем на студента-двоечника ;-)
30 апр 19, 17:49    [21875809]     Ответить | Цитировать Сообщить модератору
 Re: Создание таблиц  [new]
mayton
Member

Откуда: loopback
Сообщений: 41808
полудух
пытай гугл вопросами "проектирование бд"

Не согласен. Развивая вашу мысль нужно закрывать этот подфорум.
30 апр 19, 18:40    [21875869]     Ответить | Цитировать Сообщить модератору
 Re: Создание таблиц  [new]
fkthat
Member

Откуда:
Сообщений: 1163
Держи, студент. Беги на свой зачет.
create table [Projects] (
  [Id] int identity(1,1) not null primary key,
  [Name] nvarchar(64) not null unique,
  [StartOutputData] float not null,
  [OutputDataStep] float not null
)

create table [Data] (
  [ProjectId] int not null foreign key references [Projects]([Id]),
  [DataType] char(1) not null check([DataType] = 'I' or [DataType] = 'O'),
  [OrdNum] int not null,
  [Value] float not null,
  primary key ([ProjectId], [DataType], [OrdNum])
)
30 апр 19, 19:33    [21875923]     Ответить | Цитировать Сообщить модератору
 Re: Создание таблиц  [new]
mayton
Member

Откуда: loopback
Сообщений: 41808
fkthat, что это за устное народное творчество? Как это соотносится с вопросом автора?
30 апр 19, 19:34    [21875924]     Ответить | Цитировать Сообщить модератору
 Re: Создание таблиц  [new]
ПЕНСИОНЕРКА
Member

Откуда: Владимирская обл
Сообщений: 4592
Bora2015
А у выходных данных, по столбцам расположены набор чисел с определенным шагом ,а в строках соответствующее им значение

может все таки реалистичный пример выложите, что бы не играть в угадайку о природе проекта
30 апр 19, 19:40    [21875926]     Ответить | Цитировать Сообщить модератору
 Re: Создание таблиц  [new]
fkthat
Member

Откуда:
Сообщений: 1163
mayton
fkthat, что это за устное народное творчество? Как это соотносится с вопросом автора?

Нравится - бери, не нравится - не бери.
30 апр 19, 19:42    [21875928]     Ответить | Цитировать Сообщить модератору
 Re: Создание таблиц  [new]
mayton
Member

Откуда: loopback
Сообщений: 41808
Чёрть его знает. Вроде нравится.... Но не возьму.
30 апр 19, 19:46    [21875933]     Ответить | Цитировать Сообщить модератору
 Re: Создание таблиц  [new]
Bora2015
Member

Откуда:
Сообщений: 58
ПЕНСИОНЕРКА
Bora2015
А у выходных данных, по столбцам расположены набор чисел с определенным шагом ,а в строках соответствующее им значение

может все таки реалистичный пример выложите, что бы не играть в угадайку о природе проекта

Исходные данные одномерный массив (набор чисел) , плюс одно значение логического типа. А выходные данные в виде таблицы с 5-ю столбцами и 10 строками. А проект буквенное или цифровое имя произвольной длины.
30 апр 19, 20:43    [21875970]     Ответить | Цитировать Сообщить модератору
 Re: Создание таблиц  [new]
Bora2015
Member

Откуда:
Сообщений: 58
Т. е исходные данные
a1;a2;a3;a4;a5 это числа. Далее a6 логический тип, если истина то вводятся еще a6,a7,a8. Если ложь то a6=a7=a8=0;
Выходные
столбцы alfa =10 ,15,20,25,30,35
строки b1,b2,b3, и .т д.
Я думал если если создать одну таблицы под хранение проектов с двумя полями id_proj (уникальный идентификатор -первичный ключ) , proj (названия ). Но названия также должны быть уникальны. Чтобы они были уникальными по второму полю также создать первичный ключ ?
Вторую под хранение исходных данных с полями id_proj , a1;a2;a3;a4;a5. Как тут сделать связь с первой таблицей проектов, просто записав первым полем id_poj?
Третью таблицу с полями id_alfa и alfa. Где просто записать:
id_alfa alfa
1 10
2 15
3 20
4 25
5 30
6 35
А четвертую таблицу с полями id_proj, id_alfa (связь с третьей таблицей) и полями b1,b2,b3.
30 апр 19, 21:15    [21875984]     Ответить | Цитировать Сообщить модератору
 Re: Создание таблиц  [new]
Dimitry Sibiryakov
Member

Откуда:
Сообщений: 48131

Bora2015
Исходные данные одномерный массив (набор чисел) , плюс одно значение логического типа. А
выходные данные в виде таблицы с 5-ю столбцами и 10 строками. А проект буквенное или
цифровое имя произвольной длины.

База для этого не нужна. Двух текстовых файлов хватит за глаза.

Posted via ActualForum NNTP Server 1.5

30 апр 19, 22:10    [21876010]     Ответить | Цитировать Сообщить модератору
 Re: Создание таблиц  [new]
fkthat
Member

Откуда:
Сообщений: 1163
Dimitry Sibiryakov
База для этого не нужна. Двух текстовых файлов хватит за глаза.

У них зачет по БД.
30 апр 19, 22:41    [21876021]     Ответить | Цитировать Сообщить модератору
 Re: Создание таблиц  [new]
fkthat
Member

Откуда:
Сообщений: 1163
Bora2015
Т. е исходные данные
a1;a2;a3;a4;a5 это числа. Далее a6 логический тип, если истина то вводятся еще a6,a7,a8. Если ложь то a6=a7=a8=0;
Выходные
столбцы alfa =10 ,15,20,25,30,35
строки b1,b2,b3, и .т д.
Я думал если если создать одну таблицы под хранение проектов с двумя полями id_proj (уникальный идентификатор -первичный ключ) , proj (названия ). Но названия также должны быть уникальны. Чтобы они были уникальными по второму полю также создать первичный ключ ?
Вторую под хранение исходных данных с полями id_proj , a1;a2;a3;a4;a5. Как тут сделать связь с первой таблицей проектов, просто записав первым полем id_poj?
Третью таблицу с полями id_alfa и alfa. Где просто записать:
id_alfa alfa
1 10
2 15
3 20
4 25
5 30
6 35
А четвертую таблицу с полями id_proj, id_alfa (связь с третьей таблицей) и полями b1,b2,b3.

Ты сначала вообще про что-то другое рассказал.
30 апр 19, 22:44    [21876022]     Ответить | Цитировать Сообщить модератору
 Re: Создание таблиц  [new]
mayton
Member

Откуда: loopback
Сообщений: 41808
Bora2015
Т. е исходные данные
a1;a2;a3;a4;a5 это числа. Далее a6 логический тип, если истина то вводятся еще a6,a7,a8. Если ложь то a6=a7=a8=0;

Типа тово (пишу на псевдо-SQL диалекте).

+
Вообще во многих DBMS нету булевого типа. Это связано с экономией ресурсов.
Обычно вместо булевого заводят BIT, но это поле обычно эффективно будучи упакованным
с другими битовыми либо вводят числовой тип с констрейнтом ::= {0|1} или char ::= {Y|N}
поэтому интерпретация bool может быть очень вольная


CREATE TABLE source_data(
   a1 integer not null,
   a2 integer not null,
   a3 integer not null,
   a4 integer not null,
   a5 integer not null,
   a6 boolean,
   a7 boolean,
   a8 boolean,
);

Как реализовать опциональные поля a7,a8 я не знаю. Тут подошла бы нормализация но фиг
с ним. Экономии мало а хлопот много. Пускай останется как есть.
30 апр 19, 23:31    [21876038]     Ответить | Цитировать Сообщить модератору
 Re: Создание таблиц  [new]
mayton
Member

Откуда: loopback
Сообщений: 41808
Bora2015
Выходные
столбцы alfa =10 ,15,20,25,30,35
строки b1,b2,b3, и .т д.

Здесь я .. пас. Не понимаю. Что такое альфа? Это матрица? 6 на 3 ?
30 апр 19, 23:36    [21876040]     Ответить | Цитировать Сообщить модератору
 Re: Создание таблиц  [new]
mayton
Member

Откуда: loopback
Сообщений: 41808
Bora2015
Я думал если если создать одну таблицы под хранение проектов с двумя полями id_proj (уникальный идентификатор -первичный ключ) , proj (названия ). Но названия также должны быть уникальны. Чтобы они были уникальными по второму полю также создать первичный ключ ?
Вторую под хранение исходных данных с полями id_proj , a1;a2;a3;a4;a5. Как тут сделать связь с первой таблицей проектов, просто записав первым полем id_poj?

Ты знаешь лучше наверное нам не комментировать твои домыслы. Мы утонем в правде и неправде.
Если у тебя есть постановка курсовой или лабы - ты ее озвучь в исходном виде. Опыт подсказывает
что так будет быстрее по срокам.

Стеснятся нечего.
30 апр 19, 23:39    [21876041]     Ответить | Цитировать Сообщить модератору
 Re: Создание таблиц  [new]
Bora2015
Member

Откуда:
Сообщений: 58
mayton
Bora2015
Выходные
столбцы alfa =10 ,15,20,25,30,35
строки b1,b2,b3, и .т д.

Здесь я .. пас. Не понимаю. Что такое альфа? Это матрица? 6 на 3 ?

Альфа это угол , т. е 10 град,15 град и. тд. Количество и шаг фиксировано.
Да матрица 6x10.
1 май 19, 00:12    [21876046]     Ответить | Цитировать Сообщить модератору
 Re: Создание таблиц  [new]
Dimitry Sibiryakov
Member

Откуда:
Сообщений: 48131

Bora2015
Альфа это угол , т. е 10 град,15 град и. тд. Количество и шаг фиксировано.
Да матрица 6x10.

Tab-Separated Values - идеальное решение.

Posted via ActualForum NNTP Server 1.5

1 май 19, 00:18    [21876048]     Ответить | Цитировать Сообщить модератору
 Re: Создание таблиц  [new]
mayton
Member

Откуда: loopback
Сообщений: 41808
Bora2015
mayton
пропущено...

Здесь я .. пас. Не понимаю. Что такое альфа? Это матрица? 6 на 3 ?

Альфа это угол , т. е 10 град,15 град и. тд. Количество и шаг фиксировано.
Да матрица 6x10.

Тогда экспертный вопрос. Эта сетка углов в будущем будет расти?
Почему я спрашиваю. Движки баз данных эффективно работают с кортежами.
С жестко детерминированными фрагментами информации у которых есть
перечислимый набор свойств. Например персона. Платёж. Ордер. Продажа.

Любая задача имеющая другую природу. Математическая. Где есть многомерные
матрицы. Или гумантитарная где много текста... Эти задачи очень плохо ложаться на базу
данных. Тоесть они ложаться как "Сова на Глобус".

Матрицу можно иммитировать двумя двумя табличками со связью многие-ко-многим
но выборка из такой сцепки и (тем более) генерация отчота. Но API для работы с такой
сцепкой будет во много раз хуже чем например API Java при работе с той же матрицей.

Вобщем вопрос остается такой. Будет ли сетка расти? И есть ли возможность уйти
вообще от баз данных и решить эту задачу на обычном ЯП ?
1 май 19, 00:25    [21876050]     Ответить | Цитировать Сообщить модератору
 Re: Создание таблиц  [new]
Bora2015
Member

Откуда:
Сообщений: 58
mayton
Bora2015
пропущено...

Альфа это угол , т. е 10 град,15 град и. тд. Количество и шаг фиксировано.
Да матрица 6x10.

Тогда экспертный вопрос. Эта сетка углов в будущем будет расти?
Почему я спрашиваю. Движки баз данных эффективно работают с кортежами.
С жестко детерминированными фрагментами информации у которых есть
перечислимый набор свойств. Например персона. Платёж. Ордер. Продажа.

Любая задача имеющая другую природу. Математическая. Где есть многомерные
матрицы. Или гумантитарная где много текста... Эти задачи очень плохо ложаться на базу
данных. Тоесть они ложаться как "Сова на Глобус".

Матрицу можно иммитировать двумя двумя табличками со связью многие-ко-многим
но выборка из такой сцепки и (тем более) генерация отчота. Но API для работы с такой
сцепкой будет во много раз хуже чем например API Java при работе с той же матрицей.

Вобщем вопрос остается такой. Будет ли сетка расти? И есть ли возможность уйти
вообще от баз данных и решить эту задачу на обычном ЯП ?


расти сетка? в смысле увеличиваться размерность матрицы ? нет она фиксирована.
1 май 19, 00:30    [21876053]     Ответить | Цитировать Сообщить модератору
 Re: Создание таблиц  [new]
fkthat
Member

Откуда:
Сообщений: 1163
Автор, переходи на Монго - там вообще никакой схемы не надо - пихай туда что хочешь, хоть матрицу, хоть черта лысого :-)))
1 май 19, 00:35    [21876061]     Ответить | Цитировать Сообщить модератору
 Re: Создание таблиц  [new]
Bora2015
Member

Откуда:
Сообщений: 58
Так же как шаг по alfa. Я хотел реализовать с помощью баз данных. Да это можно и через файлы как выше говорилось, так как других операций (сортировка, поиск) кроме хранения в таблицах не нужно.
1 май 19, 00:36    [21876062]     Ответить | Цитировать Сообщить модератору
 Re: Создание таблиц  [new]
mayton
Member

Откуда: loopback
Сообщений: 41808
fkthat
Автор, переходи на Монго - там вообще никакой схемы не надо - пихай туда что хочешь, хоть матрицу, хоть черта лысого :-)))

Монго - вообще отдельная тема. Я думаю что лет через несколько кристаллизуются какие-то бест-практики
по документным БД. А пока у всех от либерализма глаза горят... можно втолкать в БД документы без
спецификаций. И потом соотв. никогда их не найти. Но эт проблема индейцев.
1 май 19, 00:42    [21876066]     Ответить | Цитировать Сообщить модератору
 Re: Создание таблиц  [new]
fkthat
Member

Откуда:
Сообщений: 1163
mayton
Матрицу можно иммитировать двумя двумя табличками со связью многие-ко-многим

Зачем? Почему бы не одной?
create table MatrixReloaded (
    Row int not null check(0 <= Row and Row <= @N),
    Col int not null check(0 <= Col and Col <= @M),
    V float not null,
    primary key (Row, Col)
)

Можно точно так же сделать даже любой размерности.
1 май 19, 00:43    [21876067]     Ответить | Цитировать Сообщить модератору
 Re: Создание таблиц  [new]
fkthat
Member

Откуда:
Сообщений: 1163
mayton
fkthat
Автор, переходи на Монго - там вообще никакой схемы не надо - пихай туда что хочешь, хоть матрицу, хоть черта лысого :-)))

Монго - вообще отдельная тема. Я думаю что лет через несколько кристаллизуются какие-то бест-практики
по документным БД. А пока у всех от либерализма глаза горят... можно втолкать в БД документы без
спецификаций. И потом соотв. никогда их не найти. Но эт проблема индейцев.

Да, монга это помойка чего угодно. Потому для ТС и подходит, т.к. у него, походу, с постановкой задачи полный абзац. Через пару постов выяснится, что матрица должна быть пятнадцатимерной, а кол-во переменных во входных данных зависит от дня недели и високосности года :))
1 май 19, 00:47    [21876070]     Ответить | Цитировать Сообщить модератору
 Re: Создание таблиц  [new]
mayton
Member

Откуда: loopback
Сообщений: 41808
fkthat
mayton
Матрицу можно иммитировать двумя двумя табличками со связью многие-ко-многим

Зачем? Почему бы не одной?
create table MatrixReloaded (
    Row int not null check(0 <= Row and Row <= @N),
    Col int not null check(0 <= Col and Col <= @M),
    V float not null,
    primary key (Row, Col)
)

Можно точно так же сделать даже любой размерности.

Такая схема удобна для разрежённых матриц. Или для тех соединений где самих соединений мало.
А для заполненной будет некоторый расход. Квадратично растущий по отношению к размерности.
1 май 19, 00:55    [21876073]     Ответить | Цитировать Сообщить модератору
 Re: Создание таблиц  [new]
Bora2015
Member

Откуда:
Сообщений: 58
fkthat
mayton
Матрицу можно иммитировать двумя двумя табличками со связью многие-ко-многим

Зачем? Почему бы не одной?
create table MatrixReloaded (
    Row int not null check(0 <= Row and Row <= @N),
    Col int not null check(0 <= Col and Col <= @M),
    V float not null,
    primary key (Row, Col)
)

Можно точно так же сделать даже любой размерности.

Мне бы через DBD создать таблицы. Вроде связи многие ко многим стараются избегать, для этого и разбивают таблицы на несколько.
1 май 19, 00:56    [21876074]     Ответить | Цитировать Сообщить модератору
 Re: Создание таблиц  [new]
fkthat
Member

Откуда:
Сообщений: 1163
mayton
А для заполненной будет некоторый расход. Квадратично растущий по отношению к размерности.

Не будет расхода. В моем варианте расход O(N * M). И меньше его никак не сделать, потому что по-любому как минимум O(N * M) значений хранить надо.
1 май 19, 01:08    [21876079]     Ответить | Цитировать Сообщить модератору
 Re: Создание таблиц  [new]
fkthat
Member

Откуда:
Сообщений: 1163
Bora2015
Мне бы через DBD создать таблицы.

Ну так ты объясни толком, что тебе все-таки нужно. Народ никак воткнуть не может.
1 май 19, 01:16    [21876080]     Ответить | Цитировать Сообщить модератору
 Re: Создание таблиц  [new]
mayton
Member

Откуда: loopback
Сообщений: 41808
fkthat
mayton
А для заполненной будет некоторый расход. Квадратично растущий по отношению к размерности.

Не будет расхода. В моем варианте расход O(N * M). И меньше его никак не сделать, потому что по-любому как минимум O(N * M) значений хранить надо.


Еще вариант. Легкая денормализация. Гулять так гулять.

CREATE TYPE VTYPE AS VARRAY(32000) OF BINARY_DOUBLE;

CREATE TABLE MATRIX_DEN (
    ROW NUMBER PRIMARY KEY,
    V VTYPE
);


Не везде взлетит. Проприетарно.
1 май 19, 01:23    [21876082]     Ответить | Цитировать Сообщить модератору
 Re: Создание таблиц  [new]
fkthat
Member

Откуда:
Сообщений: 1163
mayton
Не везде взлетит. Проприетарно.

Тоже проприетарно:
create table Answer42 (
  Id int not null identity primary key,
  Anything nvarchar(max) not null check(isjson(Anything) = 1)
)

Ну, или сразу на монгу
1 май 19, 02:16    [21876095]     Ответить | Цитировать Сообщить модератору
 Re: Создание таблиц  [new]
mayton
Member

Откуда: loopback
Сообщений: 41808
Или сразу в семантическую сеть.
1 май 19, 08:38    [21876134]     Ответить | Цитировать Сообщить модератору
Топик располагается на нескольких страницах: 1 2      [все]
Все форумы / Проектирование БД Ответить