База поставщиков

Автор m2013, 3 июля 2013, 15:10

0 Пользователи и 1 гость просматривают эту тему.

m2013

Цитата: VlhOwn от  5 июля 2013, 14:15обычно кроме списка контрагентов (в Вашем случае - таблица поставщиков) и номенклатуры товаров (в Вашем случае -  таблица продукции) присутствует еще таблица поставок, определяющая какой поставщик, какую продукцию, когда (дата), в каком количестве и по какой цене поставлял.
Это обычно или обязательно? Нам информация о том кто куда что поставил не нужна.

Цитата: CyberDaemon от  5 июля 2013, 14:53Ну да, дополнительная колонка. В этой колонке информация к какому поставщику(ID_поставщика) относится продукция.
Пара десятков типов продуцкии + пара сотен поставщиков. Как привязать несколько типов продукции к каждому поставщику? Вы опять не объясняете.
Что должно быть указано напротив строки с названием поставщика в таблице "поставщики", если данный поставщик занимается (к примеру) 5 типами продукции? В одной ячейке в строке одного поставщика 5 разных ID_продукции? Или что?
Если добровольно вызываетесь помогать, то помогайте. А то у нас получается диалог типа:
- Доктор, вы можете мне вывихнутую руку вправить
- Ну, рука определенно должна быть на месте.
- Но она не на месте.
- Но должна быть. Почитайте что-нибудь по травматологии.

Извините за грубость.

CyberDaemon

#16
Цитата: m2013 от  5 июля 2013, 16:04
Цитата: VlhOwn от  5 июля 2013, 14:15обычно кроме списка контрагентов (в Вашем случае - таблица поставщиков) и номенклатуры товаров (в Вашем случае -  таблица продукции) присутствует еще таблица поставок, определяющая какой поставщик, какую продукцию, когда (дата), в каком количестве и по какой цене поставлял.
Это обычно или обязательно? Нам информация о том кто куда что поставил не нужна.

Цитата: CyberDaemon от  5 июля 2013, 14:53Ну да, дополнительная колонка. В этой колонке информация к какому поставщику(ID_поставщика) относится продукция.
Пара десятков типов продуцкии + пара сотен поставщиков. Как привязать несколько типов продукции к каждому поставщику? Вы опять не объясняете.
Что должно быть указано напротив строки с названием поставщика в таблице "поставщики", если данный поставщик занимается (к примеру) 5 типами продукции? В одной ячейке в строке одного поставщика 5 разных ID_продукции? Или что?
Если добровольно вызываетесь помогать, то помогайте. А то у нас получается диалог типа:
- Доктор, вы можете мне вывихнутую руку вправить
- Ну, рука определенно должна быть на месте.
- Но она не на месте.
- Но должна быть. Почитайте что-нибудь по травматологии.

Извините за грубость.
Цитата: m2013 от  5 июля 2013, 16:04
Цитата: VlhOwn от  5 июля 2013, 14:15обычно кроме списка контрагентов (в Вашем случае - таблица поставщиков) и номенклатуры товаров (в Вашем случае -  таблица продукции) присутствует еще таблица поставок, определяющая какой поставщик, какую продукцию, когда (дата), в каком количестве и по какой цене поставлял.
Это обычно или обязательно? Нам информация о том кто куда что поставил не нужна.

Цитата: CyberDaemon от  5 июля 2013, 14:53Ну да, дополнительная колонка. В этой колонке информация к какому поставщику(ID_поставщика) относится продукция.
Пара десятков типов продуцкии + пара сотен поставщиков. Как привязать несколько типов продукции к каждому поставщику? Вы опять не объясняете.
Что должно быть указано напротив строки с названием поставщика в таблице "поставщики", если данный поставщик занимается (к примеру) 5 типами продукции? В одной ячейке в строке одного поставщика 5 разных ID_продукции? Или что?

1-й вариант:
  В таблице поставщиков поле id_продукции. Записи повторяются, различаются(в повт. записях) id_продукции.
2-й вариант:
 В таблице продукции поле id_поставщика. Записи повторяются, различается id_поставщика.
3-й вариант:
 Есть 3-я таблица в которой 2 поля: id_продукции и id_поставщика.
 Связь осуществляется через эту 3-ю таблицу, в 1-й и 2-й дополнительных полей нет и лишних записей нет.

    таблица продукции                               связочная таблица                        таблица поставщиков
поле1, поле2,...,id_продукции|-------|id_продукуции, id_поставщиков|------|id_поставщиков,поле1,...полеn
x           x                1                               1                         1                               1                x         x
x           x                2                               2                         1                               2                x         x
x           x                3                               3                         3                               3                x         x
и так далее. Это пример на коленке. 3-я таблица позволит сократить количество записей поставщиков и продукции. Не будет дублирования.

VlhOwn

#17
Вот эта самая "связочная таблица" из предыдущего ответа и есть таблица поставок. :)
Цитата: m2013 от  5 июля 2013, 15:04Нам информация о том кто куда что поставил не нужна
Вы уверены, что правильная формулировка этого утверждения не звучит так: "Нам сегодня информация о том кто куда что поставил не нужна"? А завтра?
Кстати, посмотрел приведенный в стартовом топике пример. Вам, судя по всему, нужна не одна таблица продукции, а две - одна таблица категорий товаров (бытовая техника и т.п), а вторая - самих товаров, имеющая ссылку на их категорию.

Вам станет много легче проектировать свою БД, если Вы кроме формулировки того, что есть на сегодняшний день, попытаетесь еще сформулировать, чего вы от своей БД хотите - какие запросы она будет обслуживать.
Например, найти всех поставщиков, поставляющих товар заданной категории или найти всех поставщиков, поставляющих заданный товар или найти все товары (заданной категории), поставляемые заданным поставщиком


m2013

Цитата: CyberDaemon от  5 июля 2013, 15:433-й вариант:
  Есть 3-я таблица в которой 2 поля: id_продукции и id_поставщика.
  Связь осуществляется через эту 3-ю таблицу, в 1-й и 2-й дополнительных полей нет и лишних записей нет.

     таблица продукции                               связочная таблица                        таблица поставщиков
поле1, поле2,...,id_продукции|-------|id_продукуции, id_поставщиков|------|id_поставщиков,поле1,...полеn
x           x                1                               1                         1                               1                x         x
x           x                2                               2                         1                               2                x         x
x           x                3                               3                         3                               3                x         x
и так далее. Это пример на коленке. 3-я таблица позволит сократить количество записей поставщиков и продукции. Не будет дублирования.

Спасибо. Третий вариант выглядит наиболее логичным.
Но опять остается открытым вопрос - как установить тип взаимосвязей (например "один ко многим") в представлении? См. скриншот.


Цитата: VlhOwn от  6 июля 2013, 07:10Вы уверены, что правильная формулировка этого утверждения не звучит так: "Нам сегодня информация о том кто куда что поставил не нужна"? А завтра?
Кстати, посмотрел приведенный в стартовом топике пример. Вам, судя по всему, нужна не одна таблица продукции, а две - одна таблица категорий товаров (бытовая техника и т.п), а вторая - самих товаров, имеющая ссылку на их категорию.

Вам станет много легче проектировать свою БД, если Вы кроме формулировки того, что есть на сегодняшний день, попытаетесь еще сформулировать, чего вы от своей БД хотите - какие запросы она будет обслуживать.
Например, найти всех поставщиков, поставляющих товар заданной категории или найти всех поставщиков, поставляющих заданный товар или найти все товары (заданной категории), поставляемые заданным поставщиком

Нас тип товара мало интересует. Главное категория. Кто куда что поставил не важно и не будет важно.

CyberDaemon

Но опять остается открытым вопрос - как установить тип взаимосвязей (например "один ко многим") в представлении?
Как то, как во вложении. Не настраивал, поэтому только для наглядности...





[вложение удалено Администратором]

m2013

Цитата: CyberDaemon от  9 июля 2013, 14:06Но опять остается открытым вопрос - как установить тип взаимосвязей (например "один ко многим") в представлении?
Как то, как во вложении. Не настраивал, поэтому только для наглядности...

Скачал. Открыл. В представлении только линии. Без знаков "1" или "n". У всех параметр "внутреннее объединение".
В представлении записей меньше, чем в таблице поставщиков. Они вроде должны автоматически туда добавляться?
В представлении поиск не работает.
См. скриншоты в архиве.

П.С.
У меня такое ощущение, что либо лыжи не едут, либо я...
В общем с программой что-то не так или я косячу. Т.к. уже бред какой-то.

[вложение удалено Администратором]

CyberDaemon

Цитата: m2013 от  9 июля 2013, 16:32
Цитата: CyberDaemon от  9 июля 2013, 14:06Но опять остается открытым вопрос - как установить тип взаимосвязей (например "один ко многим") в представлении?
Как то, как во вложении. Не настраивал, поэтому только для наглядности...

Скачал. Открыл. В представлении только линии. Без знаков "1" или "n". У всех параметр "внутреннее объединение".
В представлении записей меньше, чем в таблице поставщиков. Они вроде должны автоматически туда добавляться?
В представлении поиск не работает.
См. скриншоты в архиве.

П.С.
У меня такое ощущение, что либо лыжи не едут, либо я...
В общем с программой что-то не так или я косячу. Т.к. уже бред какой-то.
Я же сказал, это только для наглядности. Связи через 3-ю таблицу. Один к многим.

m2013

Цитата: CyberDaemon от  9 июля 2013, 15:39Связи через 3-ю таблицу. Один к многим.
Это я понял.
Я уже не один раз спрашивал: как установить тип связи? На каую кнопку нажимать? Даже в руководстве OO/LO нет объяснения. Просто "установите связь".

CyberDaemon

Цитата: m2013 от  9 июля 2013, 17:05
Цитата: CyberDaemon от  9 июля 2013, 15:39Связи через 3-ю таблицу. Один к многим.
Это я понял.
Я уже не один раз спрашивал: как установить тип связи? На каую кнопку нажимать? Даже в руководстве OO/LO нет объяснения. Просто "установите связь".
Взял мышкой поле и понёс в другое поле. Будет связь.
Или "вставка"-> "создать связь"

m2013

Цитата: CyberDaemon от  9 июля 2013, 16:15Взял мышкой поле и понёс в другое поле. Будет связь.
Или "вставка"-> "создать связь"

И связь устанавливается. А как определить тип связи?
Я уже прикреплял скрины, на которых отмечал, что в самоучителях на концах линий есть к примеру "1" и "n". А у меня в базе эти символы не появляются.
Вот по приведенному ниже скриншоту как определить и/или поменять тип связи?

[вложение удалено Администратором]

CyberDaemon

Цитата: m2013 от  9 июля 2013, 17:27
Цитата: CyberDaemon от  9 июля 2013, 16:15Взял мышкой поле и понёс в другое поле. Будет связь.
Или "вставка"-> "создать связь"

И связь устанавливается. А как определить тип связи?
Я уже прикреплял скрины, на которых отмечал, что в самоучителях на концах линий есть к примеру "1" и "n". А у меня в базе эти символы не появляются.
Вот по приведенному ниже скриншоту как определить и/или поменять тип связи?
Правый клик по связи. Там выбор. Самоучитель по Ooo, А это LO. Могут быть различия в мелочах.

m2013

Цитата: CyberDaemon от  9 июля 2013, 16:38Правый клик по связи. Там выбор. Самоучитель по Ooo, А это LO. Могут быть различия в мелочах.
Я и по Open, и по LibreOffice самоучитель читал. Там тоже нет объяснения. Только упоминается какие связи могут быть.
http://www.libreoffice.org/get-help/documentation/
И я пробовал из меню связей (ПКМ по линии между таблицами) выбирать разные опции связей - бесполезно. У меня просто линии без обозначений.


[вложение удалено Администратором]

CyberDaemon

Цитата: m2013 от 10 июля 2013, 13:14
Цитата: CyberDaemon от  9 июля 2013, 16:38Правый клик по связи. Там выбор. Самоучитель по Ooo, А это LO. Могут быть различия в мелочах.
Я и по Open, и по LibreOffice самоучитель читал. Там тоже нет объяснения. Только упоминается какие связи могут быть.
http://www.libreoffice.org/get-help/documentation/
И я пробовал из меню связей (ПКМ по линии между таблицами) выбирать разные опции связей - бесполезно. У меня просто линии без обозначений.

А Вы не задумались, хоть на секунду, что обозначение 1 n может быть один к многим?

Hasim

А зачем вы смотрите свойства Представления1?

Смотрите Сервис-Связи.

m2013

Цитата: CyberDaemon от 10 июля 2013, 12:41А Вы не задумались, хоть на секунду, что обозначение 1 n может быть один к многим?
Уточните свой вопрос. Я несколько раз прикладывал скриншоты. Там нет ни каких обозначений. Ни каких "один ко многим". Ни каких вообще. О чем вы ведете речь?

Цитата: Hasim от 10 июля 2013, 13:04Смотрите Сервис-Связи.
Приложил скриншот меню "Сервис". Подскажите пожалуйста где там "связи". Я уже окончательно запутался.

П.С.
Сдеаю перерыв до понедельника.

[вложение удалено Администратором]