|
|
|
Проектирование базы данных
|
|||
|---|---|---|---|
|
#18+
mad_nazgul, то есть база (без всяких "В таблице с типами изделий есть такой тип как "Книга"") в таком виде, как представлена у меня, если ее сделать с 9 таблицами, и полями которые указаны на рисунке будет не правильно спроектированной? В таблицах таких как например "Статус" "Бумага" "Печать" "Обработка" и "Вид заказа" я хочу поместить статические данные, что бы пользователь мог выбрать уже имеющееся значение в базе. Все остальное подлежит заполнению. Если это не правильно, скажите пожалуйста. Очень хочется сделать все грамотно, но не хватает знаний. А книг именно по проектированию я в сети не встречал. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 28.09.2011, 15:04 |
|
||
|
Проектирование базы данных
|
|||
|---|---|---|---|
|
#18+
D7naОчень хочется сделать все грамотно, но не хватает знаний. А книг именно по проектированию я в сети не встречал. Вон там, повыше, я дал ссылку на описание нормальных форм. Грамотно спроектированной считается база, которая их без нужды не нарушает. Posted via ActualForum NNTP Server 1.4 ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 28.09.2011, 15:11 |
|
||
|
Проектирование базы данных
|
|||
|---|---|---|---|
|
#18+
Dimitry Sibiryakov, ткните носом, что неправильно? ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 28.09.2011, 15:28 |
|
||
|
Проектирование базы данных
|
|||
|---|---|---|---|
|
#18+
D7na, На первый взгляд последняя схема отторжения не вызывает. Опять же повторю. Не пытайтесь сразу спроектировать всю БД. Лучше в начале иметь логическую схему. Причем как можно более подробную. Затем уже на ее основе проектировать БД. Тут Вам говорили про нормализацию. В общем случае это "правильный подход". Но иногда удобнее работать с не нормализированной БД. Опять же не имея логической схемы трудно сказать "как удобнее". ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 28.09.2011, 15:58 |
|
||
|
Проектирование базы данных
|
|||
|---|---|---|---|
|
#18+
Попробую реализовать. На личном опыте, быстрее дойдет что именно не так. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 28.09.2011, 16:27 |
|
||
|
Проектирование базы данных
|
|||
|---|---|---|---|
|
#18+
koJIo6okхотя бы потому что, зачем два справочника делать? Ну, если минимизировать по этому критерию, то можно вообще дойти до Шекспира: мир есть объект, а остальное - свойства. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 28.09.2011, 16:57 |
|
||
|
Проектирование базы данных
|
|||
|---|---|---|---|
|
#18+
D7naCane Cat Fisher, Пожалуйста помоги. В таблице с типами изделий есть такой тип как "Книга". Если выбран тип "Книга", то поля для заполнения должны содержать в себе помимо всего прочего еще и внутренности и обложку. Соответственно, у внутренностей есть: цветность, количество страниц, тип и размер бумаги и тип печати. А у обложки: Тип печати, цветность, тип и размер бумаги. Как можно реализовать такое? Как минимум, двумя способами. Первый - предусмотреть в заказе все эти поля, а заполнять - только заказа для типа "Книга". Второй - сделать еще одну таблицу, "Атрибуты книги", с этими полями, и связью с заказом 1:1, и добавлять туда запись только для заказов типа "Книга". Какой из этих способов будет удобнее и правильнее - по имеющейся информации сказать нельзя. Это зависит от того, сколько еще таких особых типов выявится, будут ли они независимы, или наследоваться друг из друга, и какие для них потребуются дополнительные атрибуты, в том числе общие и частные. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 28.09.2011, 17:01 |
|
||
|
Проектирование базы данных
|
|||
|---|---|---|---|
|
#18+
Сделал такую вот базу. Посмотрите пожалуйста, кто что увидит неправильного? ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 29.09.2011, 15:37 |
|
||
|
Проектирование базы данных
|
|||
|---|---|---|---|
|
#18+
D7na, По-русски было понятнее :-( ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 29.09.2011, 18:52 |
|
||
|
Проектирование базы данных
|
|||
|---|---|---|---|
|
#18+
D7na, Тему не читал, но что-то мне подсказывает, что таблицы Paper и PaperInside можно объединить. Как и TypeOfPaper и TypeOfPaperInside. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 29.09.2011, 18:59 |
|
||
|
Проектирование базы данных
|
|||
|---|---|---|---|
|
#18+
Еще просьба автору: на таких схемах, рядом со специфическими справочниками, вроде всех этих PaperInside, приводить несколько строк содержимого, чтобы было сразу понятно, о чем речь. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 29.09.2011, 19:48 |
|
||
|
Проектирование базы данных
|
|||
|---|---|---|---|
|
#18+
Cane Cat Fisher, проектировать базу с русскими названиями - бред. Ejhi - Таблицы Paper и Paper Inside - это бумага обложки и внутренностей соответственно. Так что их объединять никак нельзя. Cane Cat Fisher, привожу список всего что здесь есть с переводами: Order - Заказ Включает в себя: Id order - Id Заказа Id customer - Id Заказчика Order No - Номер заказа Receipt - Дата принятия заказа Deadline - Срок сдачи Due Date - Срок исполнения Id Designer - Id Дизайнера Id Status -Id Статуса Circulations - Тираж Comments - Комментарии Customer - Заказчик Включает в себя: Id Customer - Id Заказчика Name - Имя или название компании E-mail - почта Phone - Телефон Status - Статус Включает в себя: Id Status - Id Статуса Status - Статус Type of order - Тип заказа Включает в себя: Id Type of order - Id Типа заказа Type of order - Тип заказа Designer - Дизайнеры Включает в себя: Id Designer - Id Дизайнеров Designer name - Имя дизайнера Options - Опции Включает в себя: Order No - Номер заказа Paper - Бумага Paper Inside - Внутренности бумага Id print - Id Типа печати Id Print Inside - Id Типа печати внутренностей Id Type of treatment - Id Типа обработки Id Type of Order - Id Типа заказа Chroma - Цветность Chroma Inside - Цветность внутренностей Paper Inside - Внутренности Бумага Включает в себя: Paper Inside - Внутренности Бумага Inside Sheet Size - Размер Бумаги внутренностей Inside Size Products - Размер готового продукта Inside Thickness - Толщина бумаги внутренностей Id Type of paper inside - Id типа бумаги внутренностей Type of Paper Inside - Тип бумаги внутренностей Включает в себя: Id Type of Paper Inside - Id Типа бумаги внутренностей Type of Paper Inside - Тип бумаги внутренностей Print Inside - Тип печати внутренностей Включает в себя: Id Print Inside - Id Типа печати внутренностей Print Inside - Типа печати внутренностей Print - Тип печати Включает в себя: Id Print - Id Типа печати Print - Тип печати Paper - Бумага Включает в себя: Paper - Бумага Sheet Size - Размер Бумаги Size Products - Размер готового продукта Thickness - Толщина бумаги Id Type of paper - Id типа бумаги Type of paper - Тип бумаги Включает в себя: Id Type of Paper - Id Типа бумаги Type of Paper - Тип бумаги Type of treatment - Тип обработки Включает в себя: Id Type of Treatment - Id Типа обработки Type of Treatment - Тип обработки ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 29.09.2011, 21:48 |
|
||
|
Проектирование базы данных
|
|||
|---|---|---|---|
|
#18+
D7naEjhi - Таблицы Paper и Paper Inside - это бумага обложки и внутренностей соответственно. Так что их объединять никак нельзя. Paper Inside - Внутренности Бумага Включает в себя: Paper Inside - Внутренности Бумага Inside Sheet Size - Размер Бумаги внутренностей Inside Size Products - Размер готового продукта Inside Thickness - Толщина бумаги внутренностей Id Type of paper inside - Id типа бумаги внутренностей Paper - Бумага Включает в себя: Paper - Бумага Sheet Size - Размер Бумаги Size Products - Размер готового продукта Thickness - Толщина бумаги Id Type of paper - Id типа бумаги Можно эти две таблицы заменить одной, добавив поле Inside, в котором будет признак обложка/внутренность. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 30.09.2011, 10:40 |
|
||
|
Проектирование базы данных
|
|||
|---|---|---|---|
|
#18+
Ejhi, ты имеешь ввиду так?: Paper - Бумага Включает в себя: Paper - Бумага Sheet Size - Размер Бумаги Size Products - Размер готового продукта Thickness - Толщина бумаги Id Type of paper - Id типа бумаги Paper Inside - Внутренности Бумага Inside Sheet Size - Размер Бумаги внутренностей Inside Size Products - Размер готового продукта Inside Thickness - Толщина бумаги внутренностей Id Type of paper inside - Id типа бумаги внутренностей ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 30.09.2011, 13:23 |
|
||
|
Проектирование базы данных
|
|||
|---|---|---|---|
|
#18+
Ejhi, просто если выбран тип "Книга", то в заказе присутствует и обложка, и внутренние страницы. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 30.09.2011, 13:32 |
|
||
|
Проектирование базы данных
|
|||
|---|---|---|---|
|
#18+
D7naесли выбран тип "Книга", то в заказе присутствует и обложка, и внутренние страницы. А у книги могут быть несколько разных обложек? Или несколько разных внутренних страниц? Как обрабатываются книги с суперобложкой? А с вложенным широкоформатным постером? Posted via ActualForum NNTP Server 1.4 ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 30.09.2011, 13:42 |
|
||
|
Проектирование базы данных
|
|||
|---|---|---|---|
|
#18+
Dimitry Sibiryakov, У книги может быть только одна обложка. Внутренности соответственно, по типу бумаги внутри книги не должны отличаться. Про суперобложку и вкладки пишется в комментариях к заказу, если таковые есть. Такие заказы довольно редкие. Не думаю что стоит ради этого что-то менять. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 30.09.2011, 14:02 |
|
||
|
Проектирование базы данных
|
|||
|---|---|---|---|
|
#18+
D7naEjhi, ты имеешь ввиду так?: Нет, вот так: Paper - Бумага Sheet Size - Размер Бумаги Size Products - Размер готового продукта Thickness - Толщина бумаги Id Type of paper - Id типа бумаги Inside - Признак обложка/внутренность ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 30.09.2011, 17:17 |
|
||
|
Проектирование базы данных
|
|||
|---|---|---|---|
|
#18+
D7naCane Cat Fisher, проектировать базу с русскими названиями - бред. Мы не проектируем, мы обсуждаем. А туманный перевод начисто отбивает охоту разбираться. Кстати, Circulations в смысле "тираж" употребляется только в единственном числе, а Due Date - это, скорее, срок какого-то платежа, вроде налогов или процентов. D7naПро суперобложку и вкладки пишется в комментариях к заказу, если таковые есть. Такие заказы довольно редкие. Не думаю что стоит ради этого что-то менять. Снабженец, закупающий бумагу для всех заказов на следующий месяц, будет иного мнения. Он захочет запрос "СКАЖИТЕ МНЕ НУЖНОЕ КОЛИЧЕСТВО БУМАГИ, В РАЗРЕЗЕ ПО СОРТАМ БУМАГИ, ПО ВСЕМ ПЛАНИРУЕМЫМ ЗАКАЗАМ", или, проще говоря, Код: plaintext И Вас заставят, вместо SQL-сервера, ежемесячно перечитать глазами все комментарии, и подбить итожек в Экселе. Чтоб в следующий раз проектировали правильно. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 30.09.2011, 17:58 |
|
||
|
Проектирование базы данных
|
|||
|---|---|---|---|
|
#18+
Ejhi, а если одновременно в книге присутствуют и обложка, и внутренности? ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 03.10.2011, 10:15 |
|
||
|
Проектирование базы данных
|
|||
|---|---|---|---|
|
#18+
Вообще, напрашивается таблица деталей, (один-заказ-много-деталей), и у детали уже будет тип детали, плотность бумаги, и ее количество для одного экземпляра. Отдельной деталью будет обложка из картона, отдельной - внутренние страницы, и, при необходимости, отдельной - плотные цветные вкладыши. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 03.10.2011, 11:04 |
|
||
|
Проектирование базы данных
|
|||
|---|---|---|---|
|
#18+
Почему бы не сделать атомарный иерархический справочник, и не запихнуть туда все атомарные значения?(В Вашем случае это типы) id idOwner name synonym. 1 null Тип бумаги PAPERTYPE 2 1 Тип бумаги А PAPERTYPE_A 3 1 Тип бумаги В PAPERTYPE_B 4 1 Тип бумаги С PAPERTYPE_C 5 null Тип обработки TREATMENTTYPE 6 5 обработка А TREATMENTTYPE_A итд. Чтобы отобразить нужную ветку на интерфейсе используем процедуру, которая принимает синоним нужного справочника, например PAPERTYPE. В процедуре сначала получаем айдишник записи с синонимом PAPERTYPE (1), а потом выводим записи с idOwner = 1. Просто если у Вас в базе не десяток сущностей, а несколько сотен, и в среднем каждая вторая сущность имеет тип\статус, то иметь лишнюю сотню однотипных таблиц как-то не весело. К тому же данный подход позволяет не хардкодить цифирьки или имена, которые могут в любой момент поменяться. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 13.10.2011, 01:16 |
|
||
|
|

start [/forum/topic.php?fid=32&gotonew=1&tid=1541987]: |
0ms |
get settings: |
5ms |
get forum list: |
10ms |
check forum access: |
2ms |
check topic access: |
2ms |
track hit: |
154ms |
get topic data: |
8ms |
get first new msg: |
5ms |
get forum data: |
2ms |
get page messages: |
45ms |
get tp. blocked users: |
1ms |
| others: | 197ms |
| total: | 431ms |

| 0 / 0 |
