powered by simpleCommunicator - 2.0.59     © 2025 Programmizd 02
Целевая тема:
Создать новую тему:
Автор:
Закрыть
Цитировать
Форумы / Проектирование БД [игнор отключен] [закрыт для гостей] / Проектирование системы справочников. Что лучше
12 сообщений из 37, страница 2 из 2
Проектирование системы справочников. Что лучше
    #38774811
Raxta
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
Буду смотреть в сторону EAV. Всем спасибо!
...
Рейтинг: 0 / 0
Проектирование системы справочников. Что лучше
    #38774865
Лопата
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
RaxtaБуду смотреть в сторону EAV. Всем спасибо!
в pg (и именно в pg -- т.к. ddl там можно накатывать в транзакциях) не проблема нарисовать security definer ф-ю[и] [owner == superdba] (например как триггер[ы] на таблицу[s] метаданных), который будет [CREATE|ALTER] TABLE , со всеми плюшками оного (CONSTRAINTS, INDEXES, валидация и т.п.).

DROP [TABLE/COLUMN] запретить (юзверям). Сделать поле is_dropped в метаданных.

Будет в разы шустрее еава. но запросы все придется делать динамическими (пошивать в клиенте, или в хранимках) - по метаописаниям. то же - с интермордами.
...
Рейтинг: 0 / 0
Проектирование системы справочников. Что лучше
    #38775107
Очень лысый
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Cat2Очень лысыйто заместо суррогатного id можно использовать осмысленное уникальное значение
И будет очень весело, когда какой-нибудь пользователь решит, что это значение не особенно осмысленное и решить его переосмыслить

Это уже отдельная песня. Про пользователей и их права. Опять таки, я оговорился про перечисление. Т.е. речь о частном случае. Иначе можно скатиться в бесперспективный холивар о том, что лучше: суррогат или естественный ключ. Так или иначе, но этап безоговорочного преклонения перед суррогатами и увлечения EAV у меня, к счастью, в прошлом.
...
Рейтинг: 0 / 0
Проектирование системы справочников. Что лучше
    #38775679
babona
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
опять школота новички думают, что изобрели велосипед.
А когда начинается реальный life-цикл, то куда-то исчезают и остается жуткий говнокод.
без обид
...
Рейтинг: 0 / 0
Проектирование системы справочников. Что лучше
    #38775838
Raxta
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
babona,

Вот поэтому и решил сначала посоветоваться, что бы не плодить говнокода.
...
Рейтинг: 0 / 0
Проектирование системы справочников. Что лучше
    #38775842
guest_20040621
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
> жуткий говнокод

Говнокод начинается, когда задачи ставят дебилы. Не бывает красивого решения кривой задачи. По определению.
...
Рейтинг: 0 / 0
Проектирование системы справочников. Что лучше
    #38776523
SERG1257
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
RaxtaВот поэтому и решил сначала посоветоваться, что бы не плодить говнокода. Да ладно чо стеснятся то, здесь все свои.
Каждый здесь открывал для себя EAV от перспектив которого захватывало дух - это ж какая экономия, можно только тремя таблицами обойтись, а власти старшие товарищи скрывают.
Всю скучную теорию можно выкинуть, пользователей можно не мучить допросами (у нас же гибкая структура), у ДБА можно не выпрашивать прав, и никаких тебе ограничений - полная свобода творчества.
...
Рейтинг: 0 / 0
Проектирование системы справочников. Что лучше
    #38776804
scf
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Не нужно так делать - потом без поллитры не разберешься + потенциальные проблемы с быстродействием.

Главный вопрос тут - "зачем юзерам новые поля". Если к этим полям будет какая-то логика прикручиваться или для них будут нужны индексы, то лучше не извращаться и делать отдельные таблицы.
Если не будет и индексы не нужны - то вас, скорее всего, обманывают :-)

Если справочников реально много, причем большинство из них двухколоночные id, name, то имеет смысл сделать универсальное решение, примерно так:

DICTIONARY (ID, VERSION, CREATED, UPDATED, ENABLED, TYPE, TABLENAME, VALUE)

TYPE -это тип справочника. Если будет нужен справочник с бОльшим кол-вом полей, то они добавляются в отдельную таблицу со связью один-к-одному, а ее название вписывается в TABLENAME.
...
Рейтинг: 0 / 0
Проектирование системы справочников. Что лучше
    #38776933
Фотография vadiminfo
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
SERG1257Каждый здесь открывал для себя EAV от перспектив которого захватывало дух - ....
Вроде не кажный. Кто-то все же смотрел на это как на РМД вывернутую на изнанку. Поскольку типа оно живет в РМД, но РМД не задумывалось для оного. Т.е. на нем, скорей всего, достоинства РМД могут утрачиваться. И вообще.
...
Рейтинг: 0 / 0
Проектирование системы справочников. Что лучше
    #38777809
SERG1257
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
vadiminfo Вроде не кажныйХорошо, вас эта болезнь не коснулась
scf Если справочников реально много, причем большинство из них двухколоночные id, name, то имеет смысл сделать универсальное решение, примерно такКакой?
В теме по универсальным справочникам я так и не услышал ни одного объективного довода ЗА (кроме уменьшения количества таблиц),
ВСЕ доводы были - ваши аргументы ПРОТИВ слабые, МНЕ так удобно,
поэтому дайте тезисно ВАШИ личные доводы ЗА такую структуру.
...
Рейтинг: 0 / 0
Проектирование системы справочников. Что лучше
    #38777838
scf
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
SERG1257,

довод ЗА - это, очевидно, время добавления нового справочника. причем не только в базу, но и в приложение. Не нужно будет дублировать логику версионности и т.п.
...
Рейтинг: 0 / 0
Проектирование системы справочников. Что лучше
    #38777854
SERG1257
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
scf время добавления нового справочникаУ вас create table долго делается? Или не хотите идти на поклон к ДБА за правами на DDL? А придется, ибо мало справочник создать надо на него ссылатся.
scf но и в приложение а здесь-то какой затык? Долго разрабатывать форму для редактирования простейшего справочника? Или пользуетесь универсальной формой на select id, name from universal_dict where type=@type и не знаете как натравить эту форму на select id, name from @dict_table

scf Не нужно будет дублировать логику версионности и т.п. Принимается.
...
Рейтинг: 0 / 0
12 сообщений из 37, страница 2 из 2
Форумы / Проектирование БД [игнор отключен] [закрыт для гостей] / Проектирование системы справочников. Что лучше
Найденые пользователи ...
Разблокировать пользователей ...
Читали форум (0):
Пользователи онлайн (0):
x
x
Закрыть


Просмотр
0 / 0
Close
Debug Console [Select Text]