
Новые сообщения [новые:0]
Дайджест
Горячие темы
Избранное [новые:0]
Форумы
Пользователи
Статистика
Статистика нагрузки
Мод. лог
Поиск
|
|
19.09.2013, 10:55
|
|||
|---|---|---|---|
|
|||
БД для книжного магазина |
|||
|
#18+
Здравствуйте уважаемые форумчане. Подскажите идею по проектированию БД на MySQL. Имеется ДБФ файл следующей структуры : `MONTH` int(4) // Месяц `YEAR` int(4) // Год `MAIN_IND` // главный индекс товара `NAM_IZD` varchar(254) // Наименование товара `DEP_IND` text // Дополнительный индекс товара `POST_IND` int(9) // Почтовый индекс магазина `NAM_TRAKT` varchar(254) // Название магазина `KOL` int(9) // Количество товара На основании этого файла нужно сформировать БД.Я создал 3 таблицы следующей структуры: Таблица в которой названия всех магазинов (100 записей) CREATE TABLE `department` ( `ID_POST` int(9) NOT NULL AUTO_INCREMENT, // первичный ключ `POST_IND` int(9) NOT NULL, // почтовый индекс магазина `NAM_TRAKT` varchar(254) NOT NULL, // название магазина PRIMARY KEY (`ID_POST`), UNIQUE KEY `index_post` (`POST_IND`) ) Таблица по всем товарам (3000 записей) CREATE TABLE `editions` ( `ID_PUB` int(9) NOT NULL AUTO_INCREMENT, // первичный ключ `MAIN_IND` int(9) NOT NULL, // главный индекс товара `DEP_IND` varchar(254) DEFAULT NULL, // дополнительный индекс товара `NAM_IZD` varchar(254) NOT NULL, // название товара PRIMARY KEY (`ID_PUB`), UNIQUE KEY `ID_MAIN` (`MAIN_IND`) ) Таблица заказов ( 200 000 записей) CREATE TABLE `orders` ( `ID_ORDER` int(11) NOT NULL AUTO_INCREMENT, // первичный ключ `ID_PUB` int(9) DEFAULT NULL, // первичный ключ таблицы магазинов `ID_POST` int(9) DEFAULT NULL, // первичный ключ таблицы товаров `m_MONTH` int(4) DEFAULT NULL, // месяц `y_YEAR` int(4) DEFAULT NULL, // год `KOL` int(9) DEFAULT '0', // количество товара PRIMARY KEY (`ID_ORDER`) ) И возникает проблема. Количество товаров меняется каждый день. Тут проблем нет. Но главный индекс товара, количество подчинённых индексов ,название товара для главного индекса время от времени меняются. А накладные то ведуться…Если я эти данные буду менять в таблице товаров, то нету просмотра истории, потому что через 3 дня такой же товар может уже идти под другим индексом.Как сделать так,чтобы отслеживались изменения, чтобы можно было видеть как мигрирует индекс в течении месяца. Заранее спасибо. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
|
|
|
19.09.2013, 11:05
|
|||
|---|---|---|---|
БД для книжного магазина |
|||
|
#18+
valentyn7Но главный индекс товара, количество подчинённых индексов ,название товара для главного индекса время от времени меняются.Взять в руки биту и хорошенько огреть ею меняющих. Если нельзя, то отслеживать изменения и вносить новые записи в таблицу товаров (хорошо, что ПК вы сразу сделали суррогатный). Естествено, потом придётся ещё и каким-то образом определять, что за товар в "исходных" документах. Например, по пересечению периода "актуальности" варианта товара и дате документа. Или ещё как-то. В общем, первый вариант гораздо предпочтительней :) ... |
|||
|
:
Нравится:
Не нравится:
|
|||
|
|
|
19.09.2013, 12:19
|
|||
|---|---|---|---|
БД для книжного магазина |
|||
|
#18+
tanglirvalentyn7Но главный индекс товара, количество подчинённых индексов ,название товара для главного индекса время от времени меняются.Взять в руки биту и хорошенько огреть ею меняющих. Если нельзя, то отслеживать изменения и ... создать таблицу [ИсторияНазвания] с полями: 1. код (внешний ключ на первичный ключ таблицы editions) 2. дата/время 3. название 4...N. остальные поля, которые меняются из таблицы editions эти поля выбрасить с-но, имеете возможность получить название и прочее на любую дату но начинать нужно с биты ... |
|||
|
:
Нравится:
Не нравится:
|
|||
|
|
|
19.09.2013, 12:21
|
|||
|---|---|---|---|
БД для книжного магазина |
|||
|
#18+
valentyn7, Приведите пример `editions` с меняющимися записями. Просто немогу понять из написанного что там меняется. Насколько я знаю там меняться нет чему. Изменения года редакции или типографии не в счет - это уже другая позиция, а не та же самая. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
|
|
|
19.09.2013, 12:30
|
|||
|---|---|---|---|
БД для книжного магазина |
|||
|
#18+
Злой Бобрvalentyn7, Приведите пример `editions` с меняющимися записями. Просто немогу понять из написанного что там меняется. Насколько я знаю там меняться нет чему. Изменения года редакции или типографии не в счет - это уже другая позиция, а не та же самая.вполне могут менять Код: plaintext 1. это, конечно, идет как ошибка ввода первички, и за такое - только бита, но может биты нету, и у автора единственная задача - автоматизировать бардак :) ... |
|||
|
:
Нравится:
Не нравится:
|
|||
|
|
|
19.09.2013, 13:04
|
|||
|---|---|---|---|
|
|||
БД для книжного магазина |
|||
|
#18+
Chop, К сожалению это правда. Вот пример MAIN_IND | DEP_IND | NAM_IZD 89015 | 7201;7356; 2341 | Счастливая и красивая Через месяц 7201 | 7356;2341;89015 | Счастливая и красивая Я подозреваю, что у меня не хватает знаний, для того ,чтобы это всё автоматизировать. Потому и прошу у вас помощи. Есть программа, она мне выдаёт результат работы в виде ДБФ файла, структуру которого я указал выше. Люди, которые работают с программой могут сами переназначить индекса, тесть подчинённый индекс сделать главным и наоборот. И мне нужна такая структура БД, чтобы она работала по факту. Получил файл ,если есть изменения в количестве изданий или наименовании издания или подчинённых индексах добавить их в базу. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
|
|
|
19.09.2013, 13:16
|
|||
|---|---|---|---|
БД для книжного магазина |
|||
|
#18+
valentyn7Есть программа...что за программа? почему нужно писать новую? старая будет использоваться и дальше? если да, тогда тем более зачем новая? если нет - то этими вопросами заморачиваться вообще не стоит - один раз при переходе на новую программу внесли остатки со старой, и все, а в новой программе не должно быть у Пользователей возможности менять индексы, остальные параметры пусть меняют как хотят и ес-но сами потом разгребают те бамажки, которые напечатают, и выясняют, почему в одной накладной напечатано одно, а в другой другое, и почему, если сейчас распечатать эти накладные, то в них будет третье :) отчеты у вас будут правильные ... |
|||
|
:
Нравится:
Не нравится:
|
|||
|
|
|
19.09.2013, 17:28
|
|||
|---|---|---|---|
БД для книжного магазина |
|||
|
#18+
valentyn7, Я так и непонял - за что вы боретесь? У вас по сути 2 варианта: - создать БД и приложение для нее и перевести весь учет; - разобраться с тем что есть и допилить. Третьего недано. Но вы судя по всему пытаетесь идти по третьему пути. В итоге придете в никуда. Не вы первый, не вы последний. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
|
|
|
20.09.2013, 10:22
|
|||
|---|---|---|---|
|
|||
БД для книжного магазина |
|||
|
#18+
Злой Бобр, Наверное я не правильно выразил мысль. Есть готовый софт, купленный, не мой. Этот софт используется на одном участке. Он даёт информацию в графическом виде и в виде ДБФ файла. На другом участке есть накладные, туда приходит товар а потом расходиться по всем магазинам. Задача второго участка, на основании ДБФ файла быстро всё отсортировать по магазинам , разложить по стопочкам. Я создал базу данных которую указал выше, написал клиент на jave,и всё работает. Но время от времени возникают небольшие сбои в связи изменением индексов. Можно было поступить проще, базу данных вообще не делать, зачем эта история вообще нужна ? Но такой номер не пройдёт, потому как накладная может прийти за позапрошлый месяц, и хочешь не хочешь а вести её надо. Потому я и прошу у форумчан помощи, мне не нужны готовые решения в виде готовых процедур и триггеров, сам справлюсь. Мне нужен дельный совет, как спроектировать БД так, чтобы возможен был обратный синтез информации? Восстановить исходный ДБФ файл во временном разрезе учитывая все изменения что до этого вносились. Если эта задача решаема, то всё остальное просто вопрос времени и прямых рук. Спасибо всем кто отписался или отпишется, ваше мнение для меня очень важно. С Уважением. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
|
|
|
20.09.2013, 11:03
|
|||
|---|---|---|---|
БД для книжного магазина |
|||
|
#18+
valentyn7Есть готовый софт, купленный, не мой. Этот софт используется на одном участке. Он даёт информацию в графическом виде и в виде ДБФ файла. На другом участке есть накладные, туда приходит товар а потом расходиться по всем магазинам. Задача второго участка... бита, только бита, вам поможет только бита в ваших условиях задача не решаема - нет у вас на входе данных, которые позволят отследить кривые руки операторов ввода первички, анализаторы-автоматы 100%-го решения задачи все-равно не дадут - придется руцями делать сверки и записывать что на что поменялось не надо автоматизировать бардак, надо навести порядок ... |
|||
|
:
Нравится:
Не нравится:
|
|||
|
|
|
20.09.2013, 13:29
|
|||
|---|---|---|---|
|
|||
БД для книжного магазина |
|||
|
#18+
valentyn7Chop, К сожалению это правда. Вот пример MAIN_IND | DEP_IND | NAM_IZD 89015 | 7201;7356; 2341 | Счастливая и красивая Через месяц 7201 | 7356;2341;89015 | Счастливая и красивая Во-первых, полезно разделить данные на "свои" и "внешние". "Своя" запись о товаре у Вас будет одна, "внешних" может быть много. В "Свои данные" бы добавил поле, в которое писал бы отсортированные MAIN_IND и DEP_IND (для этих примеров оно будет 2341;7201;7356;89015) и использовал бы его для идентификации того, что Вам приходит "снаружи", во "внешние" - дата актуальности. В накладные можно будет выводить те "внешние" которые актуальны на нужный момент, а в "своих" данных у Вас будет чистота, порядок и никакого бардака с изменениями. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
|
|
|

start [/forum/topic.php?fid=32&mobile=1&tid=1541114]: |
0ms |
get settings: |
9ms |
get forum list: |
13ms |
check forum access: |
3ms |
check topic access: |
3ms |
track hit: |
161ms |
get topic data: |
13ms |
get forum data: |
3ms |
get page messages: |
53ms |
get tp. blocked users: |
2ms |
| others: | 15ms |
| total: | 275ms |

| 0 / 0 |

Извините, этот баннер — требование Роскомнадзора для исполнения 152 ФЗ.
«На сайте осуществляется обработка файлов cookie, необходимых для работы сайта, а также для анализа использования сайта и улучшения предоставляемых сервисов с использованием метрической программы Яндекс.Метрика. Продолжая использовать сайт, вы даёте согласие с использованием данных технологий».
... ля, ля, ля ...