| Версия для печати темы
Нажмите сюда для просмотра этой темы в оригинальном формате |
| Форум программистов > СУБД, общие вопросы > Помогите составить базу данных? |
| Автор: unkis 31.10.2006, 15:01 |
| Ребята есть такая задача, нужно составить базу данных. Задача следующая, есть магазины, они выставляют товары на продажу, и есть клиенты которые могут покупать эти продукты. Клиенты должны быть обязательно зарегистрированы у магазинов. Заранее благодарен. |
| Автор: LSD 31.10.2006, 15:12 |
| Берешь бумажку, выписываешь на нее какие у тебя есть сущности и какие у них свойства. Затем рисуешь между ними связи. А потом переносишь все это на базу. |
| Автор: unkis 31.10.2006, 15:27 |
| вот я к примеру так сделал, насколько это хорошее решения http://public.rz.fh-wolfenbuettel.de/~barvenko/eer2.pdf Может есть у кого-то идеи получше? Заранее Благодарен. |
| Автор: Vit 31.10.2006, 16:02 |
Кроме Вас никто не знает всех реалий, и скорее всего Вы по неопытности то же не знаете... Начинайте делать, но будьте готовы к тому что по ходу дела Вам прийдётся ни один раз ещё менять структуру и зависимости. Нарисовать базу данных идеальной структуры сразу... это надо иметь несколько лет опыта работы с базами, и то коррективы будут. Это как раз тот случай, когда лучше учится на своих ошибках. |
| Автор: unkis 31.10.2006, 16:27 |
| Спасибо за ответ. Я попробую рассказать ход своих мыслей при составлении такой схемы, а вы, если вам не трудно, поправите меня если что-то не так и должно быть иначе. Есть магазин( их может быть много), один магазин может иметь много счетов то есть 1:n. Так же есть клиенты, которые зарегистрировали (открыли) счета у этого магазина, то есть один клиент может иметь много счетов у одного магазина, и один счёт может принадлежать только к одному клиенту в этом магазине то есть счёт n - - - - 1 клиент. Магазин предлагает товары, и один и тот же товар может находится в разных магазинах поэтому магазин n------ m товар Над одним и тем же товаром могут производится разные действия (покупка, продажа, ...) поэтому 1:n. А вот дальше я не уверен. Клиенты через свои счета могут проводить действия над товаром(покупать, продавать), то есть с одного счёта можно купить или продать конкретный товар, поэтому счёт 1- - - - - - - n действия ну во общем где-то вот так вот я рассуждал. Заранее благодарен. |
| Автор: Dremlin 31.10.2006, 17:31 |
| связи типа "многие-ко-многим" исключаем от греха... (товар) 1 -----> n (товар_магазин) n <----- 1 (магазин) : каждый магазин может иметь много товаров, каждый товар может быть во многих магазинах. (магазин) 1 -----> n (магазин_клиент) n <----- 1 (клиент) : каждый клиент может ходить во много магазинов, в каждый магазин может прийти много клиентов. (историяПродаж) : где(магазин) кто(клиент) что(товар) сделал(купил/продал, сколько, когда и пр. нужные поля). Итого: (товар) 1 -----> n (товар_магазин) n <----- 1 (магазин) 1 -----> n (магазин_клиент) n <----- 1 (клиент) 1 1 1 | | | | n | |------------------------------------> n (историяПродаж) n <---------------------------------------| Мне почему-то так видится. Воть ЗЫ. Нам бы к форуму тулзу для рисования диаграмм... |
| Автор: LSD 31.10.2006, 18:00 |
При ответе жмешь "Предварительный просмотр", откроется форма где можно будет прикрепить файл. Например картинку с диаграммой. |
| Автор: unkis 31.10.2006, 18:14 |
| спасибо поразмыслим и над такой схемой. а можно узнать почему? |
| Автор: TaNK 11.11.2006, 13:29 | ||
качаешь с инета программульку ErWin версии эдак 4,1 и рисуешь в ней свои сущности указываешь все аттрибуты и PK/FK а потом генерируешь ее..и она тебе уже выдает готовый код для твой бд...можешь сделать ее в InterBase а можешь в чем нить по проще! |
| Автор: Shymep 16.11.2006, 19:28 | ||
Причем здесь ErWin? Во-1, сущности и связи еще не разработаны. По крайней мере тут я их не увидел. Во-2, ErWin больше подходит как средство документирования данных, чем как разработчик СУБД. От того что он сгенерирует какой-то SQL-код, это еще не значит, что у нас есть готовая СУБД... |
| Автор: TaNK 16.11.2006, 19:33 | ||||
она очень упрощает создание бд, руками писать саму базу не придется, сначало поработай с этой программой а потом говори, что с ней можно делать а что нельзя! |
| Автор: Shymep 16.11.2006, 19:55 | ||
Не люблю разводить пустые разговоры У меня была возможность в свое время испытать программы BPWin и ErWin. В поисках CASE-систем в результате я остановился на Rational Rose. Однако, необходимо понимать, для чего эти средства применяются, и не применять их не по назначению. Если Вам необходимо написать лабораторную работу и не хочется руками набивать команды CREATE Table - это одно дело, а если Вам нужно создать реальную базу данных, то тут Вам ErWin ничем не поможет. Его можно использовать только как средство документации. |
| Автор: TaNK 16.11.2006, 20:04 | ||||
каждому свое! |
| Автор: chief39 17.11.2006, 12:35 |
| Не знаю, не знаю... Мне PowerDesigner от сайбейса очень помогал. Просто оперируешь бизнес-объектами, тягаешь, раставляешь, редактируешь их. Всё на виду, легко представить, а уж потом сгенерил скл и правишь ручками что надо. Для документации только... - спорный вопрос.... Мой текущий проект изначально был написан в Rational Rose и сгенерён в код, который потом дописывался. По крайней мере смотреть структуру и что-то советовать гораздо нагляднее и легче, чем на словах или в куче скл DDLей. |