Отправляет email-рассылки с помощью сервиса Sendsay

RFpro.ru: Базы данных MySQL

  Все выпуски  

RFpro.ru: Базы данных MySQL


РАССЫЛКИ ПОРТАЛА RFPRO.RU

Лучшие эксперты в разделе

Коцюрбенко Алексей aka Жерар
Статус: Мастер-Эксперт
Рейтинг: 186
∙ повысить рейтинг »
Степанов Иван /REDDS
Статус: 4-й класс
Рейтинг: 96
∙ повысить рейтинг »
Alexander Babich
Статус: Профессор
Рейтинг: 75
∙ повысить рейтинг »

∙ Базы данных

Номер выпуска:516
Дата выхода:23.01.2017, 10:45
Администратор рассылки:Коцюрбенко Алексей aka Жерар (Мастер-Эксперт)
Подписчиков / экспертов:16 / 12
Вопросов / ответов:3 / 7

Консультация # 167400: Здравствуйте, коллеги. Есть такой вопрос - Имеем SQL Server 2005 с некой базой данных. Имеем внутри БД хранимую процедуру StoreProcA, которая выполняет несколько INSERT (что является невозможностью превращения её в функцию, к сожалению) и возвращает некое значение -- SELECT @RetVal Имеем вторую хранимю процедуру StorePr...
Консультация # 170502: Здравствуйте дорогие эксперты у меня такой вопрос!! мне надо создать базу данных для автоматизирования склада, как мне создать и с какими программами подскажите пожалуйста или дайте какую нибудь ссылку на такую тему!! заранее спасибо!!! ...
Консультация # 170616: Добрый день. Решил сделать программу по проведению тес тов, вопрос возник в реализации базы вопросов. есть 5 типов вопросов, каждый тип хранится в отдельной таблице. Есть ли смысл разделять эти таблицы ещё на таблицы по предметам? То есть делать на каждый предмет по 5 таблиц, или проще так и оставить 5 таблиц всего? Заранее спасибо. Надеюсь сделать ...

Консультация # 167400:

Здравствуйте, коллеги.

Есть такой вопрос -

Имеем SQL Server 2005 с некой базой данных.

Имеем внутри БД хранимую процедуру StoreProcA, которая выполняет несколько INSERT (что является невозможностью превращения её в функцию, к сожалению) и возвращает некое значение -- SELECT @RetVal

Имеем вторую хранимю процедуру StoreProcB, которая выполняет простой SELECT.

Задача:

вызвать процедуру StoreProcA внутри SELECT'а процедуры StoreProcB. То есть вот так:

SELECT
field1,
field2,
field3,
(StoreProcA field1,field2,field3) as field4
from SomeTable
where SomeThing = @SomeThing

Есть, конечно, вариант сначала вызвать процедуру StoreProcB и затем в С# в цикле вызывать процедуру StoreProcA и вносить возвращаемое значение в поле field4, но хотелось бы это решить средствами SQL, если это вообще возможно, а то поиски в Google ощутимых результатов не дали.

Заранее всем благодарен за помощь.

Дата отправки: 15.05.2009, 22:57
Вопрос задал: Иоффе Мэир Вэлевич
Всего ответов: 2
Страница онлайн-консультации »


Консультирует Varkon:

Здравствуйте, Иоффе Мэир Вэлевич!

Для вашей задачи может быть эффективным использование курсора - возможно существуют диалекты SQL которые позволяют подобные конструкции - то T-SQL к ним явно не оносится. А вот работа с курсором - имхо вероятно то что вам надо.

Консультировал: Varkon
Дата отправки: 16.05.2009, 22:33

4
нет комментария
-----
Дата оценки: 01.01.2008, 00:00

Рейтинг ответа:

НЕ одобряю 0 одобряю!


Консультирует Hubbitus:

Здравствуйте, Иоффе Мэир Вэлевич!
1) решение: можно из StoreProcA вернуть тип таблицу, тогда из нее в нее банально можно будет делать SELECT, ну и объединить (JOIN) его с остальными результатами
2) А чем Вас не устраивают стандартные OUT параметры хранимых процедур? Для примера:
CREATE PROCEDURE [dbo].[StoreProcA] (@ret int OUT)
AS
-- There Somereal stuff, then return needed values:
SET @ret = 77
GO

Далее, уже в StoreProcB:

DECLARE @somevar int;
EXEC test.test @somevar OUT

SELECT
field1,
field2,
field3,
@somevar as field4
from SomeTable
where SomeThing = @SomeThing

....

Консультировал: Hubbitus
Дата отправки: 16.05.2009, 22:59

3
Не, не то. Внимательнее читайте вопрос.
-----
Дата оценки: 01.01.2008, 00:00

Рейтинг ответа:

НЕ одобряю 0 одобряю!

Консультация # 170502:

Здравствуйте дорогие эксперты у меня такой вопрос!! мне надо создать базу данных для автоматизирования склада, как мне создать и с какими программами подскажите пожалуйста или дайте какую нибудь ссылку на такую тему!! заранее спасибо!!!

Дата отправки: 17.07.2009, 09:57
Вопрос задал: Bakhtier Dadjmovich Bobomov
Всего ответов: 2
Страница онлайн-консультации »


Консультирует lamed (Академик):

Здравствуйте, Bakhtier Dadjmovich Bobomov. Все зависит от размера организации, финансов, постановки задачи, уже имеющегося программного обеспечения
1. "Бесплатный способ". Затраты только на зарплату программиста. Используем Base пакета OpenOffice.Org
http://www.openoffice.org/
2. Как правило, в организации есть уже пакет Microsoft Office. Базу можно создать в Microsoft Access, если требуется установка на 1-2 машины.
http://am.rusimport.ru/MsAccess/default.aspx
http://www.firststeps.ru/vba/access/vbaaccess1.html
3. "Клиент-сервер", например, связка "Delphi/FireBird"
http://firebirdsql.org/
http://ibase.ru/
http://www.turboexplorer.com/

Консультировал: lamed (Академик)
Дата отправки: 17.07.2009, 11:15

4
нет комментария
-----
Дата оценки: 17.07.2009, 12:15

Рейтинг ответа:

НЕ одобряю 0 одобряю!


Консультирует Филатов Евгений Геннадьевич:

Здравствуйте, Bakhtier Dadjmovich Bobomov!

Есть два варианта решения.
1. Если это для предприятия, то лучше купить уже готовую. И не обязательно 1С - она слишком громоздкая и большинство функций может не использоваться. Но если потом будет желание добавить учет з/платы, финансовые отчеты и т.п., то есть смысл взять 1С ( это если будут другие альтернативы, хотя они уже почти выдавили всех конкурентов ) .
Одно нехорошо - пусть 1С и не так дорого по сравнению с другими аналогичными программами ( хотя она находится в среднем ценовом сегменте ) , но услуги программистов для настройки и поддержания уже покажутся слишком затратными ( зарплата настройщика 1С в 3-5 раз больше стандартного программиста даже с учетом почасовой оплаты ) .
2. Возьмите в штат программиста ( заодно он будет и системным администратором, можно и приходящего на полставки ) . Тогда он сможет разработать программу конкретно под специфику Вашего предприятия. С учетом решения текущих задач п о настройке компьютеров, его услуги обойдутся в конечном счете дешевле.

Ну и если это типа курсовой работы или личное творчество, то тогда будут другие предложения ( на примере моих программ ) :
1. Данные хранятся в MS Access ( для более сложных многопользовательских задач использую бесплатную версию MS SQL Server для пользователей - MSDE ) .
2. Программа взаимодействия с пользователями написана на Visual Basic 6.0
3. Отчеты выводятся в MS Excel и MS Word.
Прелесть такого подхода в том, что все это создано одним производителем ПО - Microsoft, и поэтому очень редко возникают сложности в работе, в отличие от связки Delphi + BDE ( все равно связь с базами данных производится через стандартные драйверы Windows ) . И еще используется один язык программирования Basic ( макросы написаны таким же языком ) .

Возможности MS Access позволяют в базе данных создавать пользовательский интерфейс, выводить отчеты и прочее - т.е. вполне можно обойтись без других п рограмм.

С уважением.

Консультировал: Филатов Евгений Геннадьевич
Дата отправки: 20.07.2009, 20:06
Рейтинг ответа:

НЕ одобряю +1 одобряю!

Консультация # 170616:

Добрый день. Решил сделать программу по проведению тестов, вопрос возник в реализации базы вопросов. есть 5 типов вопросов, каждый тип хранится в отдельной таблице. Есть ли смысл разделять эти таблицы ещё на таблицы по предметам? То есть делать на каждый предмет по 5 таблиц, или проще так и оставить 5 таблиц всего? Заранее спасибо. Надеюсь сделать на этой программе диплом, и применять её дальше, то есть интересует прикладной аспект. СУБД MySQL 5. Язык программирования С++. Спасибо всем кто откликнется.

Дата отправки: 20.07.2009, 14:42
Вопрос задал: Сердюков Павел
Всего ответов: 3
Страница онлайн-консультации »


Консультирует _Ayl_:

Здравствуйте, Сердюков Павел.

Я бы оставил разделение только по 5-ти типам. Насколько я понял, данные типы вопросов между собой несовместимы (требуют разной обработки).
Ну а для предметов разницы нет, нужен только признак принадлежности вопроса определенному предмету.
Не забудьте только проиндексировать поле "Предмет".

Консультировал: _Ayl_
Дата отправки: 20.07.2009, 15:17
Рейтинг ответа:

НЕ одобряю 0 одобряю!


Консультирует Santana:

Здравствуйте, Сердюков Павел.
Я бы советовал сделать одну таблицу. Только добавить два поля: код предмета и код типа. Так говорит заратустра по имени теория реляционных баз данных

Консультировал: Santana
Дата отправки: 20.07.2009, 16:04
Рейтинг ответа:

НЕ одобряю 0 одобряю!


Консультирует lamed (Академик):

Здравствуйте, Сердюков Павел.

1. Прежде всего необходимо отметить, что сам вопрос несколько поспешен,
нужно детальное описание бизнес-процесса, в том числе используемых объектов.
Количество таблиц - следствие общей стратегии.

2. Ответ на Ваш вопрос в общем виде я бы сформулировал так:
а) таблиц должно быть не меньше, чем описываемых классов объектов. Больше - наверняка.
К примеру, Вам захочется знать, кто, когда и каким образом редактировал вопросы.
Кто и как отвечал на них. Если это обучающая система, вопросы должны быть как-то связаны.
Все это привносит дополнительные таблицы.
б) должен быть использован принцип разумной достаточности.
При очень сильной нормализации теряется скорость при запросах
к связанным таблицам,при недостаточной - дублирование и проблемы
целостности.
Рассмотрим нашу модель тестов. В любом случае у Вас есть классы и,
соответственно, таблицы:
Предмет (id, Название);
Вопрос(id, Текст, i dПредмета,..., idТипаВопроса)
Допустим, есть вопросы, содержащие картинки (тип 1).
Есть вопросы, где нужно сделать выбор из нескольких ответов. (тип 2).
Есть вопросы, где нужно по формуле записать ответ (тип 3).
Эти типы (классы) являются наследниками от класса "Вопрос".
Появляется таблица "Типы вопросов" (id, Название, Описание)
Например, для вопросов с картинками можно указать имя файла картинки.
Появляется таблица "ВопросыСКартинкой" (id, idВопроса, ИмяФайла)
..
Каждый вопрос может относиться к некоему предмету или, точнее, предметной области.
Каждый вопрос может относиться к некоторому уровню, как, например, в RFPRO.RU

3. Бизнес-логика, как правило, описывается в триггерах и хранимых процедурах.
одними таблицами не обойдешься.

4. Для квалифицированной работы с базами данных необходимо изучать специальную
литературу, и первой книгой я посоветовал бы Мартина Грубера "Понимание SQL&quo t;

В любом случае, чтобы более компетентно ответить на Ваш вопрос, необходимо более пространное объяснение, того что будет представлять собой Ваша тест-система.

Консультировал: lamed (Академик)
Дата отправки: 20.07.2009, 23:27
Рейтинг ответа:

НЕ одобряю 0 одобряю!


Оценить выпуск | Задать вопрос экспертам

главная страница  |  стать участником  |  получить консультацию
техническая поддержка

Дорогой читатель!
Команда портала RFPRO.RU благодарит Вас за то, что Вы пользуетесь нашими услугами. Вы только что прочли очередной выпуск рассылки. Мы старались. Пожалуйста, оцените его. Если совет помог Вам, если Вам понравился ответ, Вы можете поблагодарить автора - для этого в каждом ответе есть специальные ссылки. Вы можете оставить отзыв о работе портале. Нам очень важно знать Ваше мнение. Вы можете поближе познакомиться с жизнью портала, посетив наш форум, почитав журнал, который издают наши эксперты. Если у Вас есть желание помочь людям, поделиться своими знаниями, Вы можете зарегистрироваться экспертом. Заходите - у нас интересно!
МЫ РАБОТАЕМ ДЛЯ ВАС!


В избранное