![]() |
|
Модераторы: LSD |
![]()
|
|
| totoiiiuk |
|
|||
![]() Шустрый ![]() Профиль Группа: Участник Сообщений: 53 Регистрация: 3.12.2007 Репутация: нет Всего: нет |
Здравствуйте.
Про проектирование баз данных знаю свовсем ничего. Точнее не более чем сделать не сложную студенческую поделку. Теперь делаю вещь посерьёзнее. В базе есть Главные сущности и у них может быть огромное количество различных параметров, а может быть два-три. При этом надо хранить информацию об уровне доступа к каждому параметру и владельца. Каким образом можно реализовать такую структуру? Моя идея такова: Таблица "параметры" - номер - имя - единица измерения - тип Таблица "главная сущность-параметр" - номер связи - номер сущности - номер параметра - права - владелец - группа Таблица "целые параметры" - номер связи - значение Таблица "строковые параметры" - номер связи - значение И т.д. Как на Ваш взгляд такой способ хранения. Насколько это сложно для поиска и программирования? Есть ли более удобный и простой способ? Или хотя бы золотая середина между способом хранения и сложностью запроса? Заранее, спасибо! Это сообщение отредактировал(а) totoiiiuk - 18.12.2012, 13:49 |
|||
|
||||
| LSD |
|
|||
![]() Leprechaun Software Developer ![]() ![]() ![]() ![]() Профиль Группа: Модератор Сообщений: 15718 Регистрация: 24.3.2004 Где: Dublin Репутация: 24 Всего: 538 |
Описание похоже на классический EAV.
-------------------- Disclaimer: this post contains explicit depictions of personal opinion. So, if it sounds sarcastic, don't take it seriously. If it sounds dangerous, do not try this at home or at all. And if it offends you, just don't read it. |
|||
|
||||
| totoiiiuk |
|
|||
![]() Шустрый ![]() Профиль Группа: Участник Сообщений: 53 Регистрация: 3.12.2007 Репутация: нет Всего: нет |
LSD, спасибо. Покурил.
Единственный аналог EAV, как я понял, это разбиение главных сущностей на похожие по списку параметров. В моём случае проблема вполне решаема. Очень многие ругают этот самый EAV. Думаю теперь вообще избегать подобных структур. Спасибо за толчок, в какую сторону гуглить. |
|||
|
||||
| LSD |
|
|||
![]() Leprechaun Software Developer ![]() ![]() ![]() ![]() Профиль Группа: Модератор Сообщений: 15718 Регистрация: 24.3.2004 Где: Dublin Репутация: 24 Всего: 538 |
В классических РДБМС он действительно редко применяется, но вот в NoSQL очень распространен. Возможно стоит посмотреть в сторону NoSQL баз. -------------------- Disclaimer: this post contains explicit depictions of personal opinion. So, if it sounds sarcastic, don't take it seriously. If it sounds dangerous, do not try this at home or at all. And if it offends you, just don't read it. |
|||
|
||||
| Zloxa |
|
|||
|
Чо? ![]() ![]() ![]() ![]() Профиль Группа: Завсегдатай Сообщений: 3473 Регистрация: 12.9.2008 Репутация: 11 Всего: 161 |
Так то вобще обычно под задачу выбирают платформу, под платформу выбирают решение. Ты же, я так понял, под решение предлагаешь платформу Но то я так, гнусавлю. EAV в rdbms ругают прежде всего за невозможность применения средств контроля целостности данных средствами rdbms. Особливо эти средства очень кстати в многопользовательской среде. Хочешь EAV, нужен контроль - велосипедируй на приложении. NoSQL движки, я так понимаю, функций контроля целостности данных вобще не не несут, согласованностью данных не заморачиваются. Тут хошь не хошь, при необходимости контроля целостности, наличии требования к согласованости данных - велосипедируй. Во вторую голову (хоть и чаще) EAV ругают за сложность извлечения данных, отбора. Поисковыйе запросы... с оператором OR к предикатам отбора по разным свойствам одной сущности - норм, с оператором AND - извольте выбирать лучшее к вашим обстоятельствам из заведомо оверхедных. Како с этим обстоит на NoSQL, я фигзна -------------------- Достоверно известно, что 89% людей доверяют статистике взятой с потолка |
|||
|
||||
| totoiiiuk |
|
|||
![]() Шустрый ![]() Профиль Группа: Участник Сообщений: 53 Регистрация: 3.12.2007 Репутация: нет Всего: нет |
LSD, повикипедил я эти nosql. И так понял, что использовать то их для полноценных баз данных не очень удобно. Их вроде как используют для связки сложно структурированных баз и не самых сложных запросов
Ладно, я понял, что написанная мной структура имеет большие проблемы в РБД. NoSQL мне не понравились ). Теперь, видимо, кто-то сможет мне помочь только в том случае если я полностью изложу свою проблему? Или всё таки есть какие-то принципы по разбиению сущностей по каким-то харакатерным признакам? Проблема ещё в том, что для всех для них есть общие или пересекающиеся параметры, по-которым могут заказать поиск. Что тогда делать? Что обычно делают? Или в разных ситуациях по разному? |
|||
|
||||
| LSD |
|
|||
![]() Leprechaun Software Developer ![]() ![]() ![]() ![]() Профиль Группа: Модератор Сообщений: 15718 Регистрация: 24.3.2004 Где: Dublin Репутация: 24 Всего: 538 |
А тебе уже удалось почитать и BRD и FSD по этой задаче? Быстро ты однако -------------------- Disclaimer: this post contains explicit depictions of personal opinion. So, if it sounds sarcastic, don't take it seriously. If it sounds dangerous, do not try this at home or at all. And if it offends you, just don't read it. |
|||
|
||||
![]()
|
| Правила форума "Общие вопросы по базам данных" | |
|
|
Данный форум предназначен для обсуждения вопросов о базах данных не попадающих под тематику других форумов:
Данный форум не предназначен для:
Если вы не соблюдаете эти правила, не удивляйтесь потом не найдя свою тему/сообщение.
Полезные советы: Если Вам понравилась атмосфера форума, заходите к нам чаще! С уважением, LSD, Zloxa. |
| 0 Пользователей читают эту тему (0 Гостей и 0 Скрытых Пользователей) | |
| 0 Пользователей: | |
| « Предыдущая тема | СУБД, общие вопросы | Следующая тема » |
|
|
По вопросам размещения рекламы пишите на vladimir(sobaka)vingrad.ru
Отказ от ответственности Powered by Invision Power Board(R) 1.3 © 2003 IPS, Inc. |