|
|
|
На каждого объекта отдельная таблица!!!
|
|||
|---|---|---|---|
|
#18+
Здравствуйте! Прошу помощи в формировании нормальной структуры базы, и постараюсь понятно сформулировать свой вопрос: Много и много раз прошел по форуму в дол и поперек, но для меня все непонятно. Ситуация наверно классическая но другие знают и объясняют, я не знаю и когда объясняют не понимаю. Допустим, есть N торговых точек, Точка 1 Точка 2 Точка 3 … Точка N и N наименовании товара товар 1 товар 2 товар 3 … товар N каждый товар имеет N разных свойств. Свойство1, Свойство2, Свойство3…, СвойствоN (Канешно пример для торговых точек классический для таких задач и потому стараюсь помощью этого примера объяснить свой вопрос) Первое что приходит в голову создать N таблиц для каждой торговой точки и одну таблицу перечни товара со своими свойствами, и гонять товар при перемещении с точки на точку с таблицы в другую таблицу. Но… Везде, во всех форумах, все ассы как аксиому ставят вопрос: это не правильно создавать для каждой точки отдельную таблицу. Я бы послушно согласился с этим, но я не смог понять главного: как я знаю, таблица имеет два измерения поля и записи. И вот не понимаю, как в эти два измерения поместить три измерения торговые точки, товар и свойство товара. В добавок имею проблемами с понятием того что, правда, у меня база mdb но и для других баз существует какие-то ограничения на количество полей. Думаю, суть вопроса смог передать, во всяком случае, знающие люди поймут, о чем идет разговор. С нетерпением жду ваших советов и спасибо заранее. И не прогоняйте меня, пожалуйста, мне очень нуждаюсь в вашей помощи… ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 24.03.2006, 18:11 |
|
||
|
На каждого объекта отдельная таблица!!!
|
|||
|---|---|---|---|
|
#18+
№ 554 567Здравствуйте! <...> как я знаю, таблица имеет два измерения поля и записи<...> если в рассуждениях вы ограничитесь понятиями "таблица" то да - два измерения, если вы привнесете в рассуждения понятие "отношение" то сколь угодно много (в разумных пределах естественно :) ) некоторые из появившихся в таким случае измерений будут описываться простым отношением - один-к-одному, один-ко-многим, более сложные могут быть описаны отношением многие-ко-многим. Последние, как правило, для своего хранения требуют создания дополнительных, промежуточных таблиц ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 24.03.2006, 18:39 |
|
||
|
На каждого объекта отдельная таблица!!!
|
|||
|---|---|---|---|
|
#18+
Ваш ответ еще более удалил меня от результата, но показал, что все-таки не правильно сформулировал вопрос. Допустим, я поставил бы такой вопрос: В таблицах торговых точек разбросаны остатки товаров, и я хочу написать запрос, который для каждого товара дает суммарное количество во всех торговых точках. Такой запрос можно написать, но он получится очень длинный или можно в цикле пробежаться по всем таблицам и так подсчитать количество, но главное то, что знающие люди сразу скажут, что ошибка при проектировании: не надо создавать для каждой точки свою таблицу, а нужно все торговые точки в одну таблицу. Вы не согласны? Если да, то я не знаю, как их поместит в одну таблицу. Их (точек) у меня больше чем допустимое количество полей в аксесе, а номенклатура товара еще в пять раз больше. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 24.03.2006, 19:05 |
|
||
|
На каждого объекта отдельная таблица!!!
|
|||
|---|---|---|---|
|
#18+
Вам ведь для чего система нужна? Наверно для того, чтобы полчать остатки по товар и их движению. А зачем вам нужны свойства товара, да еще и такие которые наверняка будут все время менятся. Типва то кофты с пуговицами, то кофты на молнии, то с длинным рукавом, то с вырезом. Сохраните нахрен описание каждого товара в поле XML типа ни не парьтесь. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 24.03.2006, 19:23 |
|
||
|
На каждого объекта отдельная таблица!!!
|
|||
|---|---|---|---|
|
#18+
В первом приближении решения "в лоб" (несколько в стиле EAV): Точка (ID_Точки, Название, Адрес) ТоварНаТочке(ID_Точки, ID_Товара, Кол-во, Цена) Товар(ID_Товара, ИмяСвойства, ТипСвойства, ЗначениеСвойства) PS. с тяпницей Вас! ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 24.03.2006, 19:29 |
|
||
|
На каждого объекта отдельная таблица!!!
|
|||
|---|---|---|---|
|
#18+
gardenmanне парьтесь.Не партес -это уже получится не программа, а полуфабрикат. В свойствах ест такие, которые, составляют костяк этого учета такие, например как поставщик (по нему в последующем, к примеру, определяется движение финансов), получатель, лицо проведший сделку, курс валюты в момент сделки, валюта сделки и т.д. то ест пример, который я привел упрощенный, но по моему дает возможность понят о какой базе идет речь. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 24.03.2006, 19:42 |
|
||
|
На каждого объекта отдельная таблица!!!
|
|||
|---|---|---|---|
|
#18+
№ 554 567 gardenmanне парьтесь.Не партес -это уже получится не программа, а полуфабрикат. В свойствах ест такие, которые, составляют костяк этого учета такие, например как поставщик (по нему в последующем, к примеру, определяется движение финансов), получатель, лицо проведший сделку, курс валюты в момент сделки, валюта сделки и т.д. то ест пример, который я привел упрощенный, но по моему дает возможность понят о какой базе идет речь. Хм-хм... :)) не понимаю каким боком то что вы описали относится к "свойствам товара". Похоже вы понятия путаете. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 24.03.2006, 19:46 |
|
||
|
На каждого объекта отдельная таблица!!!
|
|||
|---|---|---|---|
|
#18+
№ 554 567Допустим, я поставил бы такой вопрос в таком случае я ответил бы, что в этой постановке вопрос звучит еще более странно... фразы вроде "в таблицах торговых точек разбросаны остатки товаров" (SIC!) повергают меня в ступор, и отбивают напрочь охоту разбираться :) мне кажется, в вашей ситуации (типичная купи-продайка) нет смысла разрабатывать свою систему... это предметная область перепахана не одной тысячей разработчиков, и некоторым из них удалось достичь вполне приемлемого результата на этом порище... если же вопрос лежит в области менее прагматической, подразумевая под прагматической область решений адекватную целям бизнеса, то можно было бы написать свою, еще одну "купи-продайку"... взять чужую, удачную, разобрать на запчасти, изучить, и написать свою аналогичную... если мы еще дальше отдалимся от решений не противоречащих здравому смыслу, то мы попадем в сумеречную зону парадоксов сознания, в которой я стану вашим надежным проводником... такие как ваша задачи, на прктике проще всего решаются по следующей схеме: таблицы содержащие сведения о фактах хозяйственной деятельности таблицы содержащие сведения о субъектах хозяйственной дейтельности таблицы содержащие сведения об объектах учета - товарах в целом эти таблицы будут содержать исчерпывающие сведения о том, кто? с чем? что? делает... основной таблицей будет та, в которой учитывается что? больше про купи-продайки мне сказать нечего... ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 24.03.2006, 20:02 |
|
||
|
На каждого объекта отдельная таблица!!!
|
|||
|---|---|---|---|
|
#18+
Я не успеваю отвечать, пока пишу один ответ, смотрю уже новый совет, что меня очень радует, так как поверьте, мне отсюда без решения нельзя уходить. gardenmanПохоже вы понятия путаете.Не похоже, а путаю, за что и извиняюсь перед всеми. Моя проблема в том, что мне пришлось все это осваивать в ускоренном темпе. До этого не имел с бд никакого отношения. В течение определенного времени написал конкретную программу. Двигался в проектировании программы как бы “по ходу”. И вот когда “ход” дошел до остатков, пришлось записать, хотя в цикле программно запрос, который в длину… ну я не уверен, что кто-либо такой запрос писал. Потом начал искать по форуму и… ну что-то не доходит до меня какие то вещи… ------------- GuestТоварНаТочке(ID_Точки, ID_Товара, Кол-во, Цена) Если можно чуть подробнее про эту таблицу, может бить решение моей проблемы где-то рядом To proposed amendment Я уверяю вас, что старался очень много читать про все это, и чтобы у вас не было очень примитивного мнения обомне я опишу что и как у меня на сей момент сделано, может тогда легче будет дать совет: Есть таблицы: Docs(docID, docdate, PostovshikID, TochkiID, operationID, personID) Tochki(TochkiID, name, firm, country, personID, vip, created,modified) Goods(goodsID, Name,group, subgroup,….) Address(PersonID, ProducerID, PostovshikID) Coments(docID, PersonID, ProducerID, PostovshikID) Person(PersonID, Name…) Producer(ProducerID,name, firm,…) Postovshik(Postovshik ID,name, firm,…) Curs_Valuti(currencyId, name, curs, created, modified) Action (ID, docID, goodsID , amount, price,currencyID) operation (operationID,name) и к сожалению есть таблицы точек Точка1(goodsID,amount,price,…) ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 24.03.2006, 20:47 |
|
||
|
На каждого объекта отдельная таблица!!!
|
|||
|---|---|---|---|
|
#18+
№ 554 567 ------------- Guest ТоварНаТочке(ID_Точки, ID_Товара, Кол-во, Цена) Если можно чуть подробнее про эту таблицу, может бить решение моей проблемы где-то рядом Ну дык классическя организация связи многие ко многим через третью таблицу. Есть 1 таблица точек, где каждая запись описывает отдельную торговую точку, есть таблица товаров, где каждая запись описывает отдельный товар, и есть таблица соотношений точек и товаров, т.е. на какой торговой точке сколько определенного товара. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 25.03.2006, 10:49 |
|
||
|
На каждого объекта отдельная таблица!!!
|
|||
|---|---|---|---|
|
#18+
Наверно, перегрелся уже. Вот, все это сто раз советовали, сто раз объясняли, но думал что это не для моей задачи. А вед проще простого… ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 25.03.2006, 12:22 |
|
||
|
На каждого объекта отдельная таблица!!!
|
|||
|---|---|---|---|
|
#18+
_spy_Ну дык классическя организация связи многие ко многим через третью таблицу. позволю себе высказаться и дополнить, хотя автор топика заявил, что ему итак все ясно... уважаемый _spy_ рассматривает эту третью таблицу как служебную, для хранения значиний экземпляров отношений многие-ко-многим записей о товарах из таблицы товары и торговых точек из таблицы торговых точек ИМХО это не совсем верный подход такая таблица будет для базы не служебной а основной - именно в фиксируются транзакции - поступление товара на, перемещения товаров из одного места хранения в другое, выдача товара в торговую точку и продажа товара. ранее несколькими постами выше она упоминалась как таблицы содержащие сведения о фактах хозяйственной деятельности ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 25.03.2006, 15:54 |
|
||
|
На каждого объекта отдельная таблица!!!
|
|||
|---|---|---|---|
|
#18+
Нет, нет и нет! Откуда это вы взяли wetrwetwrrtewrt хотя автор топика заявил, что ему итак все ясно... Автор топика заявил, что ему вообще ничего не ясно: gardenmanПохоже вы понятия путаете.Не похоже, а путаю, за что и извиняюсь перед всеми. Моя проблема в том, что мне пришлось все это осваивать в ускоренном темпе. До этого не имел с бд никакого отношения. В течение определенного времени написал конкретную программу. Двигался в проектировании программы как бы “по ходу”. И вот когда “ход” дошел до остатков, пришлось записать, хотя в цикле программно запрос, который в длину… ну я не уверен, что кто-либо такой запрос писал. Потом начал искать по форуму и… ну что-то не доходит до меня какие то вещи…откуда у вас такое впечатление, что автор это заявил? Если отсюда: Автор Я уверяю вас, что старался очень много читать про все это, и чтобы у вас не было очень примитивного мнения обомне я опишу что и как у меня на сей момент сделано, может тогда легче будет дать совет: то представьте себе, что вы человека просите о помощи в сформировании структуры базы данных, а он вам : proposed amendment если мы еще дальше отдалимся от решений не противоречащих здравому смыслу, то мы попадем в сумеречную зону парадоксов сознания, в которой я стану вашим надежным проводником... на что я ответил что не надо мне в в сумеречную зону парадоксов мне работу надо закончить и хочу совет, если кто может. И добавлю что эту помощь получил, за что всем спасибо! ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 25.03.2006, 18:31 |
|
||
|
На каждого объекта отдельная таблица!!!
|
|||
|---|---|---|---|
|
#18+
№ 554 567Откуда это вы взяли! вот отсюда :) № 554 567А вед проще простого… ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 25.03.2006, 23:53 |
|
||
|
На каждого объекта отдельная таблица!!!
|
|||
|---|---|---|---|
|
#18+
wetrwetwrrtewrtуважаемый _spy_ рассматривает эту третью таблицу как служебную, для хранения значиний экземпляров отношений многие-ко-многим записей о товарах из таблицы товары и торговых точек из таблицы торговых точек ИМХО это не совсем верный подход такая таблица будет для базы не служебной а основной - именно в фиксируются транзакции - поступление товара на, перемещения товаров из одного места хранения в другое, выдача товара в торговую точку и продажа товара. Я на самом деле не настаивал, что эта таблица является служебной, я не рассматривал в данном случае ее роль в бизнес-процессах, я просто пояснил ее смысл с точки зрения проектирования, т.е. каким образом можно связать торговые точки и товары без необходимости ввода отдельной таблицы для каждой торговой точки. А роль такой таблицы (таблиц, ведь таких таблиц может быть и несколько, например таблица движения товаров - приход-расход, таблица цен на товары в определенной тороговой точке и т.д.) зависит уже от конкретных условий задачи. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 26.03.2006, 16:58 |
|
||
|
На каждого объекта отдельная таблица!!!
|
|||
|---|---|---|---|
|
#18+
Начните отсюда: http://www.sql.ru/forum/actualthread.aspx?tid=102032&hl=kernel ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 27.03.2006, 10:42 |
|
||
|
|

start [/forum/topic.php?fid=32&msg=33624516&tid=1545352]: |
0ms |
get settings: |
11ms |
get forum list: |
15ms |
check forum access: |
3ms |
check topic access: |
3ms |
track hit: |
153ms |
get topic data: |
12ms |
get forum data: |
3ms |
get page messages: |
65ms |
get tp. blocked users: |
2ms |
| others: | 236ms |
| total: | 503ms |

| 0 / 0 |
