|
|
|
Категории в базе данных
|
|||
|---|---|---|---|
|
#18+
Подскажите пожалуйста, как реализовать в реальной базе ( какие связи или дополнительные таблицы) часть представленной на рисунке схемы - категорийные связи в левом нижнем углу. Сам не могу разобраться, опыта маловато ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 12.01.2010, 19:05 |
|
||
|
Категории в базе данных
|
|||
|---|---|---|---|
|
#18+
создать 4 таблицы, у них всех будут общие поля такие как в сервисес(будут повторятся) ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 12.01.2010, 21:24 |
|
||
|
Категории в базе данных
|
|||
|---|---|---|---|
|
#18+
mixassio, А как эти таблицы будут связаны с таблицей Service_Bookings? И будут ли вообще? ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 12.01.2010, 21:50 |
|
||
|
Категории в базе данных
|
|||
|---|---|---|---|
|
#18+
Olger1968, так же как и сервисес. представь что ты таблицу сервисес переписываешь 4 раза и каждый раз к уже существующим полям добавляешь новые(которые в тех 4-х таблицах ниже). физически этот рисунок(одна сверху и 4 снизу) равен 4-м таблицам(нижние+все поля верхней у каждой). а схема кстати в какой нотации нарисована? ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 12.01.2010, 21:57 |
|
||
|
Категории в базе данных
|
|||
|---|---|---|---|
|
#18+
mixassio, Насчет нотации не знаю. Я думал нотации отличаются только формой представления данных, но не сутью. Насчет таблиц понятно, непонятно только, каждая из этих 4 таблиц будет связана с Service_booking Связью один ко многим на стороне один? Мне нужно, чтобы в одном заказе было несколько услуг (разных) Таблица Service_booking как раз и обеспечивает эту возможность. Вот примерно так? ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 12.01.2010, 22:11 |
|
||
|
Категории в базе данных
|
|||
|---|---|---|---|
|
#18+
Что-то вроде не то ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 12.01.2010, 22:16 |
|
||
|
Категории в базе данных
|
|||
|---|---|---|---|
|
#18+
Olger1968mixassio, Насчет нотации не знаю. Я думал нотации отличаются только формой представления данных, но не сутью. Насчет таблиц понятно, непонятно только, каждая из этих 4 таблиц будет связана с Service_booking Связью один ко многим на стороне один? Мне нужно, чтобы в одном заказе было несколько услуг (разных) Таблица Service_booking как раз и обеспечивает эту возможность. Вот примерно так? ну про нотации ты прав, просто интересно было. по последнему рисунку таблица услуги_в_заказе это все равно что связь многие ко многим между услуги и заказы. Кстати я понял чо тебе нужно, это классическая задача на приведение БД к третьей нормальной форме. хороший пример находится на этом сайте выбери там шаг 107 oracle(сайт не выдает четкую ссылку) посмотри, я правильно понял что тебе нужно? (там выбираешь SQL by steps - oracle - шаг 107) ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 12.01.2010, 22:27 |
|
||
|
Категории в базе данных
|
|||
|---|---|---|---|
|
#18+
У вас, Olger1968, задача какая? Нарисовать ddl по картинке или спроектировать структуру данных? ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 12.01.2010, 22:49 |
|
||
|
Категории в базе данных
|
|||
|---|---|---|---|
|
#18+
guest_20040621, Спроектировать структуру. Но первая картинка для примера, схожая с моей задачей ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 12.01.2010, 23:06 |
|
||
|
Категории в базе данных
|
|||
|---|---|---|---|
|
#18+
mixassio, спасибо огромное, гляну ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 12.01.2010, 23:08 |
|
||
|
Категории в базе данных
|
|||
|---|---|---|---|
|
#18+
Olger1968mixassio, спасибо огромное, гляну ну это то? или в другой стороне копать надо? ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 12.01.2010, 23:09 |
|
||
|
Категории в базе данных
|
|||
|---|---|---|---|
|
#18+
> Спроектировать структуру. Тогда вы не с того начали. Первая задача - семантическая модель. А вы пытаетесь натянуть чью-то убогую поделку на глобус. Для какой цели - не могу понять. > Но первая картинка для примера, схожая с моей задачей Вашей задачи я не знаю, но на картинке полная ахинея. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 12.01.2010, 23:13 |
|
||
|
Категории в базе данных
|
|||
|---|---|---|---|
|
#18+
guest_20040621, скорее всего привести к нормальной форме третьей надо, чо не понятного? ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 12.01.2010, 23:20 |
|
||
|
Категории в базе данных
|
|||
|---|---|---|---|
|
#18+
mixassio, Посмотрел, о нормализации читал уже не раз. Но применительно к этой ситуации не доезжаю. Дело в том, что услуги разные по составу атрибутов. Мне важно знать какие конкретно услуги заказаны и расшифровку каждой услуги. Если бы у каждой услуги были одинаковые атрибуты, как у товара в том примере, понятно - выбрал услугу, количество... а здесь есть таблица услуги и таблицы, которые содержат расшифровку каждой из услуг. И куда их пришпилить, не знаю. Исключить таблицу закаы? или исключить таблицу услуги в заказе вместе с таблицей услуги? ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 12.01.2010, 23:34 |
|
||
|
Категории в базе данных
|
|||
|---|---|---|---|
|
#18+
guest_20040621, взял с сайта. А ахинея или нет, не знаю, так бы не спрашивал. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 12.01.2010, 23:37 |
|
||
|
Категории в базе данных
|
|||
|---|---|---|---|
|
#18+
Olger1968, может как-то так. Но тогда непонятно как связать расшифровку услуг с конкретным заказом (строкой в заказе) ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 12.01.2010, 23:43 |
|
||
|
Категории в базе данных
|
|||
|---|---|---|---|
|
#18+
Знакомая картинка. 3 года назад делал систему обработки заказов для туроператора, был очень похожий фрагмент БД. Тут с разнотипными сервисами типичная ситуация наследования. В физической модели можно использовать разные реализации наследования. Рекомендации, когда какую лучше использовать, можно найти в любой книжке по проектрованию БД или даже в доке по CASE средству, например по PowerDesigner. Я применял в своем случае решение с дочерними таблицами для атрибутов специфических сущностей, но это не значит, что для вашей задачи это будет оптимально. То есть от конкретики задачи надо смотреть. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 12.01.2010, 23:59 |
|
||
|
Категории в базе данных
|
|||
|---|---|---|---|
|
#18+
Olger1968 непонятно как связать расшифровку услуг с конкретным заказом (строкой в заказе) А что именно не понятно? ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 13.01.2010, 00:01 |
|
||
|
Категории в базе данных
|
|||
|---|---|---|---|
|
#18+
divv, Я думаю, может таблицы Виза и Паспорт связать с таблицей "Услуги в заказе" связью один к одному? В зависимости от того, какая услуга (Виза, Паспорт) выбрана в этой таблице, открывается та или иная таблица (Виза или Паспорт) и заполняются подробные данные об услуге. Т.е строка идентифицируется номером заказа(Заказы), кодом услуги (услуги) и номером услуги (из таблиц Виза Паспорт) ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 13.01.2010, 00:16 |
|
||
|
Категории в базе данных
|
|||
|---|---|---|---|
|
#18+
Olger1968 Но тогда непонятно как связать расшифровку услуг с конкретным заказом (строкой в заказе) а чего не понятного? у тебя в услуги_в_заказе id услуги и id заказа. вот и связь ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 13.01.2010, 09:56 |
|
||
|
Категории в базе данных
|
|||
|---|---|---|---|
|
#18+
mixassio, В том то и дело, что id услуги, а не Id записи в таблице 'виза' или 'паспорт'. т.е. я знаю, какая услуга заказана, но не могу узнать какая именно запись в таблицах виза или паспорт связан с этой услугой. Например, код заказа 1, код услуги 1, а с кодом услуги 1 связана туча записей в таблицах "виза" (паспорт) и не понять какая именно принадлежит данному заказу (строчке заказа). Вот так будет правильно? ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 13.01.2010, 11:17 |
|
||
|
Категории в базе данных
|
|||
|---|---|---|---|
|
#18+
Olger1968mixassio, В том то и дело, что id услуги, а не Id записи в таблице 'виза' или 'паспорт'. т.е. я знаю, какая услуга заказана, но не могу узнать какая именно запись в таблицах виза или паспорт связан с этой услугой. Например, код заказа 1, код услуги 1, а с кодом услуги 1 связана туча записей в таблицах "виза" (паспорт) и не понять какая именно принадлежит данному заказу (строчке заказа). Вот так будет правильно? а нельзя реквизиты виза и паспорт тогда вставить в услуги_в_заказе? смысл тогда их выносить? не совсем понял вообще их предназначение(виза и паспорт). что за данные там будут? ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 13.01.2010, 13:42 |
|
||
|
Категории в базе данных
|
|||
|---|---|---|---|
|
#18+
mixassio, такой вариант существует. В этом случае некоторые поля будут оставаться пустыми, а я возможно буду добавлять еще блоки по количеству услуг: путевки, страховки и прочее. Данные во все этих блоках разные и таблица тогда распухнет. Я думал заполнять ту или иную таблицу в зависимости от того, какой тип услуг выбран. Тогда все записи будут храниться только в своей таблице а общие для все атрибуты я вынесу в таблицу "Услуги в заказе". Можно было бы вынести их и в таблицу "Заказы", но у разных услуг могут быть, например, разные даты исполнения. Спасибо за ответы, я по крайней мере начал кое что понимать. Буду признателен и за другие комментарии, еще раз благодарю ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 13.01.2010, 18:03 |
|
||
|
Категории в базе данных
|
|||
|---|---|---|---|
|
#18+
Olger1968mixassio, такой вариант существует. В этом случае некоторые поля будут оставаться пустыми, а я возможно буду добавлять еще блоки по количеству услуг: путевки, страховки и прочее. Данные во все этих блоках разные и таблица тогда распухнет. тогда сделай связь один к одному(услуги_в_заказе -- виза,услуги_в_заказе -- паспорт). будут как бы дополнения к основной таблице. и если надо будет добавлять "путевки, страховки и прочее" - будешь добавлять новые таблицы ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 13.01.2010, 19:52 |
|
||
|
|

start [/forum/topic.php?fid=32&msg=36406461&tid=1542880]: |
0ms |
get settings: |
7ms |
get forum list: |
9ms |
check forum access: |
2ms |
check topic access: |
2ms |
track hit: |
152ms |
get topic data: |
6ms |
get forum data: |
2ms |
get page messages: |
36ms |
get tp. blocked users: |
1ms |
| others: | 212ms |
| total: | 429ms |

| 0 / 0 |
