powered by simpleCommunicator - 2.0.61     © 2026 Programmizd 02
Целевая тема:
Создать новую тему:
Автор:
Закрыть
Цитировать
Форумы / Проектирование БД [игнор отключен] [закрыт для гостей] / Что изменить в структуре БД?
29 сообщений из 29, показаны все 2 страниц
Что изменить в структуре БД?
    #37059104
Фотография NickBell
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Здравствуйте,

Есть таблица «Плательщик», где дан список плательщиков.
У каждого плательщика есть соответствующий адрес, номер счета и соответствующий ему банк.
Адрес и номер счета может измениться с со временем, но старые данные не должны теряться.
И в то же время, когда выбирается плательщик, на экране должны появляться только его последние измененные данные при составлении счета-фактуры.
Как учесть этот момент? Что за поле или таблицу мне нужно добавить?
То же самое пожалуй коснется и банк, ведь его код тоже может измениться.
...
Рейтинг: 0 / 0
Что изменить в структуре БД?
    #37059153
tru55
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
даты начала и конца действия данных
...
Рейтинг: 0 / 0
Что изменить в структуре БД?
    #37059179
Злой Бобр
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
NickBell,

Данные_плательщика.Date_ - ставим дату начиная с которой существующая запись неактуальна.
При выборе плательщика соответственно условие на дату.
...
Рейтинг: 0 / 0
Что изменить в структуре БД?
    #37059193
SERG1257
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
...
Рейтинг: 0 / 0
Что изменить в структуре БД?
    #37059311
Фотография NickBell
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
SERG1257 http://habrahabr.ru/blogs/sql/101544/

Статья также была интересной, надеюсь правильные выводы сделала.

Это новый вариант, добавлены 2 поля - дата и статус.
Дате автоматически будет присваиваться новая дата, а для статуса, если же он новый, то ему автоматически присвоится - 1, а старому - 0.

И добавила также в таблице Счет_фактура - поле код_данные_плательщика, если не ошибаюсь он там тоже нужен.
...
Рейтинг: 0 / 0
Что изменить в структуре БД?
    #37059312
Фотография NickBell
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
...
Рейтинг: 0 / 0
Что изменить в структуре БД?
    #37060355
Фотография NickBell
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
И всё же остановилась на начальной и конечной дате, так намного удобнее.

Всем большое спасибо!!!
...
Рейтинг: 0 / 0
Что изменить в структуре БД?
    #37060458
Фотография Cat2
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Модератор форума
NickBellSERG1257 http://habrahabr.ru/blogs/sql/101544/

Статья также была интересной, надеюсь правильные выводы сделала.

Это новый вариант, добавлены 2 поля - дата и статус.
Дате автоматически будет присваиваться новая дата, а для статуса, если же он новый, то ему автоматически присвоится - 1, а старому - 0.

И добавила также в таблице Счет_фактура - поле код_данные_плательщика, если не ошибаюсь он там тоже нужен.

Статус не нужен особо.

У новой записи самая большая дата и этого достаточно. Хотя, конечно, некоторые запросы со статусом будут побыстрее.

Дата окончания уж точно не нужна.

Если надо хранить данные о плательщике, который уже на должен делать никаких операций - умер, например, то в его реквизитах должно быть поле "Дата окончания договора"
...
Рейтинг: 0 / 0
Что изменить в структуре БД?
    #37060927
Фотография NickBell
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Cat2,

И статус и конечная дата убраны.

Сомнения у меня были в том, нужна ли мне конечная дата в таблице, но теперь уже не сомневаюсь в том, что и это мне не нужно.
Изменения могут происходить очень редко, может быть раз в году, а может и еще реже, не знаю, но вполне могут быть, об этом меня предупредили и мне надо будет учесть этот момент на всякий случай.
В принципе выбор максимальной даты вполне достаточен для запроса.
Посмотрим, может быть еще что-нибудь переделаю в самой структуре. Хотелось бы с самого же начала привести в норму всю структуру, а не потом менять что-то во время работы.
...
Рейтинг: 0 / 0
Что изменить в структуре БД?
    #37061012
SERG1257
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
авторСомнения у меня были в том, нужна ли мне конечная дата в таблице, но теперь уже не сомневаюсь в том, что и это мне не нужно.Конечная дата нужна для упрощения запросов. Сравните запрос - дай мне данные для клиента @myclient на @query_date
Код: plaintext
select * from mytable where client=@myclient and @query_date between dfrom and dto
против
Код: plaintext
select top  1  * from mytable where client=@myclient and change_date<@query_date order by change_date 
При большом количестве джойнов, во втором случае оптимизатору будет куда труднее выбрать хороший оптимальный план.
Конечно за легкость запросов приходится платить большим вниманием к правильности заполнения дат dfrom и dto
...
Рейтинг: 0 / 0
Что изменить в структуре БД?
    #37061029
Фотография NickBell
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
SERG1257,

На сегодняшний день у меня такая структура составлена.

Что касается конечной даты и почему я ее решила не включать, то это потому, что фактически они должны искать по номеру фактуры и его дате, а там учтено, например id_плательщика и id_данные_плательщика. В самой же начальной дате, где она использована, будет автоматически проставляться дата того дня, когда будет внесено изменение и оператор даже не будет подозревать о его существовании.
...
Рейтинг: 0 / 0
Что изменить в структуре БД?
    #37061959
Фотография NickBell
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Добавила пункт "прекращение действия". Надеюсь, уже всё учтено и можно работать дальше. Если же мне всё-же понадобится конечная дата для некоторых таблиц, то добавлю и ее, но на данный момент не чувствую ее необходимость для моей задачи.
...
Рейтинг: 0 / 0
Что изменить в структуре БД?
    #37061978
Фотография ПЕНСИОНЕРКА
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
NickBell,

не понимаю смысла название

если это детализация товара, то структура таблицы товара
-ид товар --счетчик
-ид сч-ф --для связи
-колич
-цена
-ндс

в сч-ф тогда ид_наим не нужен
...
Рейтинг: 0 / 0
Что изменить в структуре БД?
    #37062000
Злой Бобр
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Народ, непарьте автора. У него вопросов по теме уже нет, и то что слепил полностью устраивает. Так что ненужно учить его жизни. Будет что-то непонятно, я думаю он задаст конкретный вопрос. )))
...
Рейтинг: 0 / 0
Что изменить в структуре БД?
    #37062206
ENO
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
NickBell,

Я за денормализацию документов.
...
Рейтинг: 0 / 0
Что изменить в структуре БД?
    #37062237
ViPRos
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
ENO,

а я за большевиков
...
Рейтинг: 0 / 0
Что изменить в структуре БД?
    #37062519
Фотография NickBell
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
ПЕНСИОНЕРКАNickBell,

не понимаю смысла название

если это детализация товара, то структура таблицы товара
-ид товар --счетчик
-ид сч-ф --для связи
-колич
-цена
-ндс

в сч-ф тогда ид_наим не нужен

Под названием у меня подразумеваются тесты, медобслуживание (по части медицины) - то есть это список принятого стандарта в области медицины. И здесь я думаю, что с со временем могут быть какие-то изменения.

О вашем варианте я чуть позднее подумаю, пока не очень разобралась в нем.
...
Рейтинг: 0 / 0
Что изменить в структуре БД?
    #37062551
Фотография NickBell
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Злой Бобр, ENO, ViPRos,

В Проектирование БД я вошла потому, что здесь если не ошибаюсь, обычно дают советы по проектированию БД, если что не так.
В данный момент у меня нет вопросов, но если кто-нибудь посоветуют что-нибудь хорошее, приму к сведению.
Согласна с тем, что на данный момент у меня наверное немного денормализованная схема, но и опыта пока что у меня мало, так что пока учусь.
...
Рейтинг: 0 / 0
Что изменить в структуре БД?
    #37062608
Злой Бобр
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
NickBell,

Ну тогда в счет-фактуре целесообразно разделить шапку и табличную часть. В итоге у тебя уменьшится объем таблицы и соответственно повысится скорость обработки по ней.
Т.е. в Счет_Фактуры у тебя по одному документу будет одна запись, а в Счет_Фактуры_ТЧ (к примеру) будет перечень товаров (услуг) по данному документу. Связь по Счет_Фактуры.id_фактуры=Счет_Фактуры_ТЧ.id_фактуры

Это то что слету замечено, а так вполне вероятно что есть еще что-то.
...
Рейтинг: 0 / 0
Что изменить в структуре БД?
    #37062910
Фотография NickBell
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
В таблице "Счет_фактура" оставила только лишь те поля, которые будут появляться по одному разу. А в "Счет_фактуры_данные" вынесла остальное. При таком раскладе запрос действительно будет выполняться быстрее.
Но сейчас такое ощущение, что еще надо что-то менять в таблицах "Счет_фактуры_данные", "Названия" и "Данные_названия", здесь что-то лишнее.
...
Рейтинг: 0 / 0
Что изменить в структуре БД?
    #37062946
Злой Бобр
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
NickBell,

В Счет_фактуры_данные перенести единица измерения, количество, цена, сумма, НДС, ... , т.е. то что фактически выписано.
Отдельную таблицу для единиц измерения.
В Данные_названия зачем ключевое поле? Как по мне вообще это поле лишнее.

Снова это все слету, так что смотрите еще.
...
Рейтинг: 0 / 0
Что изменить в структуре БД?
    #37063438
Фотография NickBell
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Сделала некоторые изменения.
Цену также перенесла из таблицы "Данные_названия", а раз перенесла ее, то отпала надобность в существовании самой таблицы "Данные_названия". Отдельно создала таблицу "Единица измерения", скорее всего так лучше, чем иметь подстановку в поле, легче будет добавить или удалить что-либо.

А это просто примерный тип самого бланка, где должны быть выведены данные.
...
Рейтинг: 0 / 0
Что изменить в структуре БД?
    #37063444
Фотография NickBell
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
А нужно ли мне вообще хранить сумму в таблицах?
Или этот момент важен для документов типа счета-фактур?
Запросом же можно сделать вычисляемое поле в отчетах, где будет выводиться сумма?
...
Рейтинг: 0 / 0
Что изменить в структуре БД?
    #37063914
Злой Бобр
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
NickBellА нужно ли мне вообще хранить сумму в таблицах?
Или этот момент важен для документов типа счета-фактур?
Запросом же можно сделать вычисляемое поле в отчетах, где будет выводиться сумма?
Если по уму то нужно. Так хоть как-то можно будет сверить табличную часть. К тому же иногда нужно выбрать документы с суммами и выборка напрямую будет быстрее чем джойнить перебор табличной части.
Для любого документа.
Ответ выше.

Вам еще есть что оптимизировать. Думайте. Частично подсказка в моих постах выше есть, но и кроме того есть куда двигаться. Попробуйте поговорить с менеджером или бухом, думаю будет небесполезно.
...
Рейтинг: 0 / 0
Что изменить в структуре БД?
    #37070335
Фотография NickBell
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Вроде бы всё учла, посмотрим что будет дальше.
...
Рейтинг: 0 / 0
Что изменить в структуре БД?
    #37075558
_VVP_
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
NickBell, несколько комментариев:

1. Задача весьма типовая, есть ряд адекватных и доступных решений с которыми можно ознакомиться и потом проектировать свои варианты.
Посмотреть можно различные публикации, начиная от типовых конфигураций на базе 1С8 и заканчивая открытыми решениями, такими как OpenERP/TinyERP .
2. Ссылки я разместил не просто так, а в подтверждение моего следующего утверждения - крайне желательно поставщиков, клиентов и плательщиков объединять в одну сущность "Контрагент" ("Партнер").
3. Данные контрагента лучше логически объединять по сущностям - адреса (у вас - город и улица), банковские счета (у вас - банк и номер счета).
4. Данные банка представлять отдельной таблицей не надо - лишний, не нужный в системе объект.
5. Если под поставщиком вы понимаете собственную организацию, то и назовите эту сущность таким образом - "Организация" ("Фирма", "Компания" и т.д.). Проектируется эта сущность по аналогии с контрагентом, зачастую с контрагентом смешивается в одну сущность. Данные организации лучше объединять также по сущностям адреса, банковского счета и т.д.
6. В документе (счет-фактура) формализуйте имя заказчика, поняв что это контрагент.
7. В табличной части документа (счет-фактура данные) добавьте порядок строк внутри одного документа.
8. Вспомните про валюты и курсы.
9. Для вашего понятия "стандарт" есть типовое название "Номенклатура". Обращу внимание, что в это понятие входит все, что пользователь системы покупает или продает - и физический товар, и услуги, и основные средства, и такие вещи, как лицензии.
10. Для вашего понятия "данные стандарта" есть типовое название "Прайс-лист" или "Цены номенклатуры". В такую сущность удобно включать как цены для клиентов, так и цены поставщиков.

Вот такой расклад.
...
Рейтинг: 0 / 0
Что изменить в структуре БД?
    #37078464
Фотография NickBell
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
_VVP_,

Спасибо за комментарии, было очень интересно.
Да, некоторые названия у меня немного изменены, но это сделано специально для форума, чтоб боле-менее ясна была задача, что именно мне хотелось бы сделать.
Насчет банка, пока мною не решено окончательно, что именно сделать (время еще есть подумать). Под поставщиком действительно подразумевается наша организация. В принципе я ее даже совсем могу убрать и лишь только в отчете разместить ее данные, больше нигде и не нужно и фактически останется один плательщик. А заказчика должны вводить сами.
Насчет курса - здесь мне не придется учитывать это. Мне просто сказали, что цены стандартов должны быть сложены, больше ничего им не нужно.
В процессе работы может быть где-то что-то и изменю, вполне возможно, но сейчас уже не так сложно будет.
...
Рейтинг: 0 / 0
Что изменить в структуре БД?
    #37082101
A1ek5andr0
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
NickBell,

Данные поставщика и плательщика лучше объединить в одну таблицу, добавив поле "Тип" (поставщик/плательщик).
...
Рейтинг: 0 / 0
Что изменить в структуре БД?
    #37083043
Фотография NickBell
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
A1ek5andr0NickBell,

Данные поставщика и плательщика лучше объединить в одну таблицу, добавив поле "Тип" (поставщик/плательщик).

Да, согласна с этим, они очень похожи друг с другом и выполняют практически одну и ту же функцию.
...
Рейтинг: 0 / 0
29 сообщений из 29, показаны все 2 страниц
Форумы / Проектирование БД [игнор отключен] [закрыт для гостей] / Что изменить в структуре БД?
Найденые пользователи ...
Разблокировать пользователей ...
Читали форум (0):
Пользователи онлайн (0):
x
x
Закрыть


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