Модераторы: LSD
  

Поиск:

Ответ в темуСоздание новой темы Создание опроса
> Как организовать хранение в БД данных фирмы? 
:(
    Опции темы
bio_hazard
Дата 6.9.2007, 12:39 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Опытный
**


Профиль
Группа: Участник
Сообщений: 274
Регистрация: 28.6.2007

Репутация: нет
Всего: 1



Здравствуйте. Подскажите пожалуйста как лучше реализовать хранение в СУБД данных по фирме. Стандартный набор данных адрес, телефон, виды деятельности. Виды деятельности фирмы - переменное количество, причём строгого списка из которых их выбирают нет, те как назовёт сама фирма свои виды деятельности так и надо заносить информацию. В дальнейшем какие то виды деятельности могут исчезать, потом могут появляется, поэтому наверное надо добавить признак false\true .

Остальные данные я представляю как хранить.
PM MAIL   Вверх
Glip
Дата 6.9.2007, 12:45 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Опытный
**


Профиль
Группа: Участник
Сообщений: 473
Регистрация: 30.12.2006

Репутация: нет
Всего: 18



можно виды деятельности вынести в отдельную таблицу + таблица связи фирма_виды_деятельности (связь многие-ко-многим)


--------------------
user posted image
PM MAIL   Вверх
batigoal
Дата 6.9.2007, 13:18 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Нелетучий Мыш
****


Профиль
Группа: Участник Клуба
Сообщений: 6423
Регистрация: 28.12.2004
Где: Санктъ-Петербургъ

Репутация: 1
Всего: 151



Цитата(Glip @  6.9.2007,  13:45 Найти цитируемый пост)
можно виды деятельности вынести в отдельную таблицу + таблица связи фирма_виды_деятельности (связь многие-ко-многим) 

Да, это стандартный подход.

Пример:
1) таблица игроков с фамилиями
2) таблица возможных амплуа (вратарь, защитник, полузащитник, форвард)
3) Таблица-связка, ссылающаяся на две предыдущие.


--------------------
"Чтобы правильно задать вопрос, нужно знать большую часть ответа" (Р. Шекли)
ЖоржЖЖ
PM WWW   Вверх
bio_hazard
Дата 6.9.2007, 13:22 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Опытный
**


Профиль
Группа: Участник
Сообщений: 274
Регистрация: 28.6.2007

Репутация: нет
Всего: 1



Спасибо за ответы. Наверное так и буду делать, просто раньше никогда не сталкивался с такой ситуацией, но всегда что-то происходит в первый раз smile
PM MAIL   Вверх
bio_hazard
Дата 6.9.2007, 13:48 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Опытный
**


Профиль
Группа: Участник
Сообщений: 274
Регистрация: 28.6.2007

Репутация: нет
Всего: 1



Цитата(batigoal @ 6.9.2007,  13:18)
Цитата(Glip @  6.9.2007,  13:45 Найти цитируемый пост)
можно виды деятельности вынести в отдельную таблицу + таблица связи фирма_виды_деятельности (связь многие-ко-многим) 

Да, это стандартный подход.

Пример:
1) таблица игроков с фамилиями
2) таблица возможных амплуа (вратарь, защитник, полузащитник, форвард)
3) Таблица-связка, ссылающаяся на две предыдущие.

А в двух слова сможете объяснить, как в таблице связке присвоить игроку несколько амплуа, если возможных амплуа несколько десятков (для примера)
PM MAIL   Вверх
Glip
Дата 6.9.2007, 14:04 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Опытный
**


Профиль
Группа: Участник
Сообщений: 473
Регистрация: 30.12.2006

Репутация: нет
Всего: 18



сгенерировать insert из необходимого количества пар id_игрока и id_амплуа
это чуть больше чем в 2-х словах.



--------------------
user posted image
PM MAIL   Вверх
batigoal
Дата 6.9.2007, 14:19 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Нелетучий Мыш
****


Профиль
Группа: Участник Клуба
Сообщений: 6423
Регистрация: 28.12.2004
Где: Санктъ-Петербургъ

Репутация: 1
Всего: 151



Цитата(bio_hazard @  6.9.2007,  14:48 Найти цитируемый пост)
А в двух слова сможете объяснить, как в таблице связке присвоить игроку несколько амплуа, если возможных амплуа несколько десятков (для примера) 

Так а что мешает?

Player
ID    Name
----------------
1     Ronaldinho
2     Robben

Amplua
ID    Name
----------------
1     Goalkeeper
2     Defender
3     Midfielder
4     Forward

Player_Amplua
ID_Player    ID_Amplua
-----------------------------
1                 4
2                 3
2                 4

В данном примере Роббен может выступать как полузащитник и как нападающий.
Колонки второй таблицы, разумеется, foreign keys.


--------------------
"Чтобы правильно задать вопрос, нужно знать большую часть ответа" (Р. Шекли)
ЖоржЖЖ
PM WWW   Вверх
DimW
Дата 6.9.2007, 14:34 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Эксперт
***


Профиль
Группа: Завсегдатай
Сообщений: 1330
Регистрация: 24.2.2005
Где: Орёл

Репутация: 2
Всего: 44



Цитата(bio_hazard @  6.9.2007,  13:48 Найти цитируемый пост)
присвоить игроку несколько амплуа

уж лучше на твоем примере, для играков дополнительная таблица не кчему...
-------------------------
фирмы:
id   name
--   -------
 1   ОАО
 2   ЗАО
 3   ООО

виды деятельности:

id   name
--   -------
10  xxx
20  zzz 
30  yyy
40  qqq

таблица связи:

id  id_фирмы   id_вд
--  ------------    -------
1    1                10
2    1                30
3    3                40
4    3                30

отсюда видно что ОАО имеет 2 вида деятельности xxx и yyy;
ООО тоже два qqq и yyy;
ЗАО бездельники;
а вид деятельности zzz ни кто не использует.

Добавлено через 2 минуты и 30 секунд
batigoal, сори ты меня опередил, но всеравно если следовать здравому смыслу то между игроками и их ролями в команде связи M:M вроди как не должно быть, хотя я не спортсмен - могу и ошибаться...
PM MAIL ICQ   Вверх
batigoal
Дата 6.9.2007, 15:11 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Нелетучий Мыш
****


Профиль
Группа: Участник Клуба
Сообщений: 6423
Регистрация: 28.12.2004
Где: Санктъ-Петербургъ

Репутация: 1
Всего: 151



Цитата(DimW @  6.9.2007,  15:34 Найти цитируемый пост)
batigoal, сори ты меня опередил, но всеравно если следовать здравому смыслу то между игроками и их ролями в команде связи M:M вроди как не должно быть, хотя я не спортсмен - могу и ошибаться... 

Это возможно, но пример мой действительно немного притянут за уши. Однако не суть.


--------------------
"Чтобы правильно задать вопрос, нужно знать большую часть ответа" (Р. Шекли)
ЖоржЖЖ
PM WWW   Вверх
bio_hazard
Дата 6.9.2007, 18:23 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Опытный
**


Профиль
Группа: Участник
Сообщений: 274
Регистрация: 28.6.2007

Репутация: нет
Всего: 1



batigoal,dimW Спасибо!!! Примеры просты и красноречивы,понял как правильно реализовать, ничего сложного нет smile))) Еще раз спасибо!
PM MAIL   Вверх
  
Ответ в темуСоздание новой темы Создание опроса
Правила форума "Общие вопросы по базам данных"
LSD
Zloxa

Данный форум предназначен для обсуждения вопросов о базах данных не попадающих под тематику других форумов:

  • вопросам по СУБД для которых нет отдельных подфорумов
  • вопросам которые затрагивают несколько разных СУБД (например проблема выбора)
  • инструменты для работы с СУБД
  • вопросы проектирования БД
  • теоретически вопросы о СУБД

Данный форум не предназначен для:

  • вопросов о поиске разлиных БД (если не понимаете чем БД отличается от СУБД то: а) вам не сюда; б) Google в помощь)
  • обсуждения проблем с доступом к СУБД из различных ЯП (для этого есть соответсвующие форумы по каждому ЯП)
  • обсуждения проблем с написание SQL запросов, для этого есть форум Составление SQL-запросов
  • просьб о написании курсовой, реферата и т.п., для этого есть Центр помощи или фриланс биржа
  • объявлений о найме специалистов, для этого есть раздел Объявления о найме специалистов

Если вы не соблюдаете эти правила, не удивляйтесь потом не найдя свою тему/сообщение. ;)


Полезные советы:

При написании сообщения постарайтесь дать теме максимально понятное название. В теме максимально подробно опишите проблему. Если применимо укажите: название базы данных и версии (MySQL 4.1, MS SQL Server 2000 и т.п.); используемых язык программирования; способа доступа (ADO, BDE и т.д.); сообщения об ошибках.

Для вставки кода используйте теги [code=sql] [/code].

Литературу по базам данных можно поискать здесь.

Действия модераторов можно обсудить здесь.


Если Вам понравилась атмосфера форума, заходите к нам чаще! С уважением, LSD, Zloxa.

 
0 Пользователей читают эту тему (0 Гостей и 0 Скрытых Пользователей)
0 Пользователей:
« Предыдущая тема | СУБД, общие вопросы | Следующая тема »


 




[ Время генерации скрипта: 0.0515 ]   [ Использовано запросов: 22 ]   [ GZIP включён ]


Реклама на сайте     Информационное спонсорство

 
По вопросам размещения рекламы пишите на vladimir(sobaka)vingrad.ru
Отказ от ответственности     Powered by Invision Power Board(R) 1.3 © 2003  IPS, Inc.