|
|
|
MS SQL+Аптека
|
|||
|---|---|---|---|
|
#18+
Добрый день всем! Я делаю курсач по клиент-серверним приложением. я буду использовать делфи и SQL server 2005. У меня проблема с базой. мне нужно создать базу которая позволит сберегать лекарственные препараты, вести статистику продаж, принимать препараты. вот я что-то сделал , пожалуйста посмотрите и дайте свои рекомендации. А можно ли у таблице Users_data дать ключ первинный на PrincipalID ? вот скрин Код: plaintext ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 10.10.2008, 10:51 |
|
||
|
MS SQL+Аптека
|
|||
|---|---|---|---|
|
#18+
авторА можно ли у таблице Users_data дать ключ первинный на PrincipalID ? 1. Первичный ключ не дают "на". 2. Вопросам проектирования бд посвящен специальный раздел форума: Проектирование БД ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 10.10.2008, 11:00 |
|
||
|
MS SQL+Аптека
|
|||
|---|---|---|---|
|
#18+
а тему можно перенести? ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 10.10.2008, 11:02 |
|
||
|
MS SQL+Аптека
|
|||
|---|---|---|---|
|
#18+
Neox Код: plaintext И еще - таблица buy_list - на ней нет ни ключей, ни ссылок. Это как? Насколько я понял - это список заказов, а значит все это должно быть. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 10.10.2008, 11:47 |
|
||
|
MS SQL+Аптека
|
|||
|---|---|---|---|
|
#18+
я немоножко переработал. вообщем мне надо создать таблицы для реализации отчетов продаж(по датах), и вести учет препаратов(приход-расход). краткое описание таблиц ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 10.10.2008, 20:26 |
|
||
|
MS SQL+Аптека
|
|||
|---|---|---|---|
|
#18+
вот описание 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 поля, ето нормально или нет? у таблице клиентов будут токо пенсионеры Я делаю курсач и я хочу реализовать коректную работу программы, мне нужно с таблицамы как-то всё попроще, разобратся бы з приходом товара. Может ето все и глупо у меня, но я учусь ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 10.10.2008, 20:57 |
|
||
|
MS SQL+Аптека
|
|||
|---|---|---|---|
|
#18+
а вот и скрин Код: plaintext ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 10.10.2008, 21:02 |
|
||
|
MS SQL+Аптека
|
|||
|---|---|---|---|
|
#18+
Должен быть склад. Товар приходит на склад и уходит с него. Приход осуществляется при помощи накладной. Накладная состоит из "шапки" (одна таблица: id; дата; поставщик;сумма;НДС) и спецификации (другая таблица: id записи; id шапки;id товара; кол-во;цена;сумма;НДС;дата производства;срок годности). Расход в твоем случае при помощи кассового чека (раз это аптека). Чек состоит тоже из "шапки": id; дата;№кассы;сумма;id пенсионера (судя по условию);id пользователя-продавца. И спецификации: id записи; id шапки;id товара;кол-во;цена;сумма;НДС;цена со скидкой;сумма со скидкой. Склад - таблица следующего вида: id записи;id товара;остаток на текущий момент;кол-во прихода;цена розничная;цена оптовая;дата прихода; дата производства;срок годности. Пенсионер: id пенсионера; № пенсионного удостоверения; ФИО. Пользователь: должен быть в одной таблице. Name не может быть первичным ключом т.к. не обеспечивает уникальность. Товар: id товара; штрих-код;наименование; международное наименование;срок годности;вид упаковки;штук в упаковке;группа товара;набор признаков (типа: обязательный ассортимент; товар первой необходимости и т.п. - это медицинская специфика). Это самая минимальная структура. В реальности все товары приходят партиями, с разной ценой. Приходуются на несколько складов. Перемещаются между складами. Возвращаются от покупателя и поставшику. Списываются по причине брака, гнили и.т.п. Розничные продажи имеют скидки. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 12.10.2008, 01:48 |
|
||
|
MS SQL+Аптека
|
|||
|---|---|---|---|
|
#18+
а PrincipalID у таблице Users_data может бить уникальним, но тогда можна ли делать связь между двумя первичными ключами?? ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 12.10.2008, 22:48 |
|
||
|
MS SQL+Аптека
|
|||
|---|---|---|---|
|
#18+
на таблице users_data я уже сделаю ключ, но правильно я понял суть с Прихода на Склад с Складу у Росход??? правильно? ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 12.10.2008, 23:03 |
|
||
|
MS SQL+Аптека
|
|||
|---|---|---|---|
|
#18+
и для чего таблица товар если етсь таблица склад????? Пожалуйста помогите!! ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 12.10.2008, 23:21 |
|
||
|
MS SQL+Аптека
|
|||
|---|---|---|---|
|
#18+
вот что я сделал Код: plaintext storage -склад commodies -товары expense -расходы invoice -приходы скажите где здесь ошибки! плиз! ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 13.10.2008, 00:46 |
|
||
|
MS SQL+Аптека
|
|||
|---|---|---|---|
|
#18+
на лекции ходить надо было ! ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 13.10.2008, 08:36 |
|
||
|
MS SQL+Аптека
|
|||
|---|---|---|---|
|
#18+
я ходжу на лекции! я сам себе делаю курсач, вот последний куросовой по ООП делали токо 3 чела с групы (26 чоловек в групе) и сдал на 11 (с 12 балов). Просто я не понимаю хорошо бизнес логику аптеки. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 13.10.2008, 10:58 |
|
||
|
MS SQL+Аптека
|
|||
|---|---|---|---|
|
#18+
Непонятно через что связаны 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. Т.к. информация о том кто оприходывал накладную важна. По оформлению: таблицы и поля называй либо чисто английскими терминами, либо русским в транслите. А то у тебя хрен разберёшь. И в будущем такая самодисциплина пригодится. Если по специальности работать будешь. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 13.10.2008, 16:02 |
|
||
|
MS SQL+Аптека
|
|||
|---|---|---|---|
|
#18+
Но как обьеденить invoise_1 i expense_1 если продаж то буде куча а приходов 1-2. Получится что-то типа такого Код: plaintext ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 13.10.2008, 19:42 |
|
||
|
MS SQL+Аптека
|
|||
|---|---|---|---|
|
#18+
а если обьеденить invoise_2 i expoise_2 то я даже не могу представить себе . Ведь ето будет два поля с товарами, 2 поля с users, и вообще ето будет очень большая таблица, в моем случае на 16 столбцов. Но я поробую так сделать. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 13.10.2008, 19:55 |
|
||
|
MS SQL+Аптека
|
|||
|---|---|---|---|
|
#18+
я смотрю что я достал вас тут етой темою, да я не понимаю, зачем клеять "шапки", на мою мисль ето будет очень большая таблица, наверное я не пойму суть, но так тому и быть. AlexB спасибо тебе. Наверное я тупой. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 13.10.2008, 20:26 |
|
||
|
MS SQL+Аптека
|
|||
|---|---|---|---|
|
#18+
AlexBДолжен быть склад. Товар приходит на склад и уходит с него. Приход осуществляется при помощи накладной. Накладная состоит из "шапки" (одна таблица: id; дата; поставщик;сумма;НДС) и спецификации (другая таблица: id записи; id шапки;id товара; кол-во;цена;сумма;НДС;дата производства;срок годности). Расход в твоем случае при помощи кассового чека (раз это аптека). Чек состоит тоже из "шапки": id; дата;№кассы;сумма;id пенсионера (судя по условию);id пользователя-продавца. И спецификации: id записи; id шапки;id товара;кол-во;цена;сумма;НДС;цена со скидкой;сумма со скидкой. Склад - таблица следующего вида: id записи;id товара;остаток на текущий момент;кол-во прихода;цена розничная;цена оптовая;дата прихода; дата производства;срок годности. Пенсионер: id пенсионера; № пенсионного удостоверения; ФИО. Пользователь: должен быть в одной таблице. Name не может быть первичным ключом т.к. не обеспечивает уникальность. Товар: id товара; штрих-код;наименование; международное наименование;срок годности;вид упаковки;штук в упаковке;группа товара;набор признаков (типа: обязательный ассортимент; товар первой необходимости и т.п. - это медицинская специфика). Это самая минимальная структура. В реальности все товары приходят партиями, с разной ценой. Приходуются на несколько складов. Перемещаются между складами. Возвращаются от покупателя и поставшику. Списываются по причине брака, гнили и.т.п. Розничные продажи имеют скидки. а НДС ето что? сума з податком или просто размер податка??? ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 02.11.2008, 15:12 |
|
||
|
MS SQL+Аптека
|
|||
|---|---|---|---|
|
#18+
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 ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 07.11.2008, 01:10 |
|
||
|
|

start [/forum/topic.php?fid=32&msg=35587543&tid=1543589]: |
0ms |
get settings: |
7ms |
get forum list: |
16ms |
check forum access: |
3ms |
check topic access: |
3ms |
track hit: |
190ms |
get topic data: |
11ms |
get forum data: |
2ms |
get page messages: |
66ms |
get tp. blocked users: |
2ms |
| others: | 243ms |
| total: | 543ms |

| 0 / 0 |
