powered by simpleCommunicator - 2.0.61     © 2026 Programmizd 02
Целевая тема:
Создать новую тему:
Автор:
Закрыть
Цитировать
Форумы / Проектирование БД [игнор отключен] [закрыт для гостей] / MS SQL+Аптека
21 сообщений из 21, страница 1 из 1
MS SQL+Аптека
    #35587367
Neox
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Добрый день всем! Я делаю курсач по клиент-серверним приложением. я буду использовать делфи и SQL server 2005. У меня проблема с базой. мне нужно создать базу которая позволит сберегать лекарственные препараты, вести статистику продаж, принимать препараты. вот я что-то сделал , пожалуйста посмотрите и дайте свои рекомендации. А можно ли у таблице Users_data дать ключ первинный на PrincipalID ?
вот скрин
Код: plaintext
http://s43.radikal.ru/i102/ 0810 /b2/258e33cfdbc8.jpg
...
Рейтинг: 0 / 0
MS SQL+Аптека
    #35587396
pkarklin
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
авторА можно ли у таблице Users_data дать ключ первинный на PrincipalID ?

1. Первичный ключ не дают "на".
2. Вопросам проектирования бд посвящен специальный раздел форума: Проектирование БД
...
Рейтинг: 0 / 0
MS SQL+Аптека
    #35587405
Neox
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
а тему можно перенести?
...
Рейтинг: 0 / 0
MS SQL+Аптека
    #35587543
Bely
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Neox
Код: plaintext
http://s43.radikal.ru/i102/ 0810 /b2/258e33cfdbc8.jpg
Картинку бы в нормальном разрешении вывесить, а то букв не видно

И еще - таблица buy_list - на ней нет ни ключей, ни ссылок. Это как?
Насколько я понял - это список заказов, а значит все это должно быть.
...
Рейтинг: 0 / 0
MS SQL+Аптека
    #35589029
Neox
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
я немоножко переработал. вообщем мне надо создать таблицы для реализации отчетов продаж(по датах), и вести учет препаратов(приход-расход). краткое описание таблиц
...
Рейтинг: 0 / 0
MS SQL+Аптека
    #35589062
Neox
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
вот описание

users
PrincipalID-уникальной номер пользователя
password - пароль пользователя

Users_data
Name -имя первичный ключ
Surname -фамилия
Patronymic - отчество
PrincipalID - номер пользователя, в даном случай foreign key для связи с users
status - статус, администратор или продавец

Clients
CLnum -уникальный номер пенсионера
Name -имя
Surname - фамилия
Patronymic -отчество

Preparats (используеться для хранения текущих препаратов какие есть в наличии)
Code - штрих код товара
Nazv - назва
Count_P - количество
Price - закуп. цена
Price_pdv - цена с ПДВ
typeYp - тип упаковки
Postachalnik - поставщик foreign key для связи с Postch

Postch
Posum - уникальний номер поставика
NazvaP - назва
Adress - адрес
City
Country
tel -телефон
alttel -альтернативный телефон
Rating - рейтинг

sale_list --ПО етой таблице я буду делать отчет расхода и статистику
date_p дата продажи (перв. кл.)
times - час (перв. кл.)
prod - продавец который продал вторичный ключ для связи
tov - какой товар
kilkist - количество
Suma - сума

Вот как я сделал, скрин прилагается.
я не знаю как мне сделать приход товара.
и еще я задал первичный ключ на 2 поля, ето нормально или нет?
у таблице клиентов будут токо пенсионеры
Я делаю курсач и я хочу реализовать коректную работу программы, мне нужно с таблицамы как-то всё попроще, разобратся бы з приходом товара. Может ето все и глупо у меня, но я учусь
...
Рейтинг: 0 / 0
MS SQL+Аптека
    #35589065
Neox
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
а вот и скрин
Код: plaintext
http://s40.radikal.ru/i088/ 0810 /dd/18165af52b8d.jpg
...
Рейтинг: 0 / 0
MS SQL+Аптека
    #35589767
Neox
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
помогите кто-нить
...
Рейтинг: 0 / 0
MS SQL+Аптека
    #35589788
AlexB
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Должен быть склад. Товар приходит на склад и уходит с него.
Приход осуществляется при помощи накладной. Накладная состоит из "шапки" (одна таблица: id; дата; поставщик;сумма;НДС) и спецификации (другая таблица: id записи; id шапки;id товара; кол-во;цена;сумма;НДС;дата производства;срок годности).
Расход в твоем случае при помощи кассового чека (раз это аптека). Чек состоит тоже из "шапки": id; дата;№кассы;сумма;id пенсионера (судя по условию);id пользователя-продавца. И спецификации: id записи; id шапки;id товара;кол-во;цена;сумма;НДС;цена со скидкой;сумма со скидкой.
Склад - таблица следующего вида: id записи;id товара;остаток на текущий момент;кол-во прихода;цена розничная;цена оптовая;дата прихода; дата производства;срок годности.
Пенсионер: id пенсионера; № пенсионного удостоверения; ФИО.
Пользователь: должен быть в одной таблице. Name не может быть первичным ключом т.к. не обеспечивает уникальность.
Товар: id товара; штрих-код;наименование; международное наименование;срок годности;вид упаковки;штук в упаковке;группа товара;набор признаков (типа: обязательный ассортимент; товар первой необходимости и т.п. - это медицинская специфика).

Это самая минимальная структура.
В реальности все товары приходят партиями, с разной ценой. Приходуются на несколько складов. Перемещаются между складами. Возвращаются от покупателя и поставшику. Списываются по причине брака, гнили и.т.п. Розничные продажи имеют скидки.
...
Рейтинг: 0 / 0
MS SQL+Аптека
    #35590244
Neox
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
а PrincipalID у таблице Users_data может бить уникальним, но тогда можна ли делать связь между двумя первичными ключами??
...
Рейтинг: 0 / 0
MS SQL+Аптека
    #35590255
Neox
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
на таблице users_data я уже сделаю ключ, но правильно я понял суть

с Прихода на Склад с Складу у Росход??? правильно?
...
Рейтинг: 0 / 0
MS SQL+Аптека
    #35590270
Neox
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
и для чего таблица товар если етсь таблица склад????? Пожалуйста помогите!!
...
Рейтинг: 0 / 0
MS SQL+Аптека
    #35590315
Neox
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
вот что я сделал
Код: plaintext
http://i030.radikal.ru/ 0810 / 75 /b56cb3cf01d2.jpg
мне кажется что ето полный бред.
storage -склад
commodies -товары
expense -расходы
invoice -приходы
скажите где здесь ошибки! плиз!
...
Рейтинг: 0 / 0
MS SQL+Аптека
    #35590464
anjey
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
на лекции ходить надо было !
...
Рейтинг: 0 / 0
MS SQL+Аптека
    #35590707
Neox
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
я ходжу на лекции! я сам себе делаю курсач, вот последний куросовой по ООП делали токо 3 чела с групы (26 чоловек в групе) и сдал на 11 (с 12 балов). Просто я не понимаю хорошо бизнес логику аптеки.
...
Рейтинг: 0 / 0
MS SQL+Аптека
    #35591619
AlexB
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Непонятно через что связаны storage и expense_2 и invoice_2.
По логике через id_commodity. Только тогда они должны быть связаны с таблицей commodities напрямую.
Подо все документы лучше отводить только 2 таблицы (шапка и спецификация).
Хотя это и приводит к избыточности полей (некоторые атрибуты для части документов будут пустые).
Но так легче управлять. Т.е. в твоем случае надо объединить expense_1 и invoice_1 в одну таблицу. А expense_2 и invoice_2 в другую.
Непонятно куда пропал Поставщик. Это invoice_1.supplier? Должен быть справочник. Иначе в 3-х документах его напишут 3-мя способами.
Users надо связать и с invoice_1. Т.к. информация о том кто оприходывал накладную важна.

По оформлению: таблицы и поля называй либо чисто английскими терминами, либо русским в транслите. А то у тебя хрен разберёшь.
И в будущем такая самодисциплина пригодится.
Если по специальности работать будешь.
...
Рейтинг: 0 / 0
MS SQL+Аптека
    #35592169
Neox
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Но как обьеденить invoise_1 i expense_1 если продаж то буде куча а приходов 1-2.
Получится что-то типа такого
Код: plaintext
http://s48.radikal.ru/i119/ 0810 /d5/22091c57b31e.jpg
...
Рейтинг: 0 / 0
MS SQL+Аптека
    #35592187
Neox
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
а если обьеденить invoise_2 i expoise_2 то я даже не могу представить себе . Ведь ето будет два поля с товарами, 2 поля с users, и вообще ето будет очень большая таблица, в моем случае на 16 столбцов. Но я поробую так сделать.
...
Рейтинг: 0 / 0
MS SQL+Аптека
    #35592225
Neox
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
я смотрю что я достал вас тут етой темою, да я не понимаю, зачем клеять "шапки", на мою мисль ето будет очень большая таблица, наверное я не пойму суть, но так тому и быть. AlexB спасибо тебе.
Наверное я тупой.
...
Рейтинг: 0 / 0
MS SQL+Аптека
    #35631539
Neox
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
AlexBДолжен быть склад. Товар приходит на склад и уходит с него.
Приход осуществляется при помощи накладной. Накладная состоит из "шапки" (одна таблица: id; дата; поставщик;сумма;НДС) и спецификации (другая таблица: id записи; id шапки;id товара; кол-во;цена;сумма;НДС;дата производства;срок годности).
Расход в твоем случае при помощи кассового чека (раз это аптека). Чек состоит тоже из "шапки": id; дата;№кассы;сумма;id пенсионера (судя по условию);id пользователя-продавца. И спецификации: id записи; id шапки;id товара;кол-во;цена;сумма;НДС;цена со скидкой;сумма со скидкой.
Склад - таблица следующего вида: id записи;id товара;остаток на текущий момент;кол-во прихода;цена розничная;цена оптовая;дата прихода; дата производства;срок годности.
Пенсионер: id пенсионера; № пенсионного удостоверения; ФИО.
Пользователь: должен быть в одной таблице. Name не может быть первичным ключом т.к. не обеспечивает уникальность.
Товар: id товара; штрих-код;наименование; международное наименование;срок годности;вид упаковки;штук в упаковке;группа товара;набор признаков (типа: обязательный ассортимент; товар первой необходимости и т.п. - это медицинская специфика).

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

а НДС ето что? сума з податком или просто размер податка???
...
Рейтинг: 0 / 0
MS SQL+Аптека
    #35638917
Фотография Mr Marmelad
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Neox Наверное я тупой.

Да нет, коллега, совсем нет. Просто в нашем мире не существует "единственно правильного решения". Многие думают что программирование и как следственная наука - дезайн - это из раздела точных наук... Аннет - это и искусство в равной степени. И как любое искусство требует чтобы "было красиво" В вашей задаче нет однозначного ответа - есть их много и все будут правильные. Если Вы их найдёте.

Итак мои замечания:

.1. НДС - это ваши там налоги типа. % sales tax in the USA
2. Согласен с АлехВ - создавайте каждую группу документов из двух частей : header (первая) или мастер запись и lines (линии документа) ну например - OrderHeader (master) --> OrderLine (details); InvoiceHeader (master) --> InvoiceLine (details)
3. Не нашёл описание склада нигде. То есть должно же быть как то хранилище разделено - Полка Первая Третий Ряд тд.
4. Ключи именованы непоследовательно. Сделайте милость назовите их по принципу ID_TableName например
5. Укажите обязательность наличия данных NULL handling.
6. Ну и типы данных следовало бы оказать а то в одном месте у вас может быть ID varchar а в другом ID tinyint
...
Рейтинг: 0 / 0
21 сообщений из 21, страница 1 из 1
Форумы / Проектирование БД [игнор отключен] [закрыт для гостей] / MS SQL+Аптека
Найденые пользователи ...
Разблокировать пользователей ...
Читали форум (0):
Пользователи онлайн (0):
x
x
Закрыть


Просмотр
0 / 0
Close
Debug Console [Select Text]