powered by simpleCommunicator - 2.0.61     © 2026 Programmizd 02
Целевая тема:
Создать новую тему:
Автор:
Закрыть
Цитировать
Форумы / Проектирование БД [игнор отключен] [закрыт для гостей] / Структура базы данных
10 сообщений из 10, страница 1 из 1
Структура базы данных
    #36352140
rsolanov
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
Здравствуйте!
В базе данных есть две таблицы: это UT_Companies(Компании) и UT_Accounts(Аккаунты).
Две таблицы находятся в отношении один ко многим, то есть у одной компании может быть сколько угодно много аккаунтов. У таблицы аккаунтов есть поле "номер аккаунта" и дата его создания.
У каждой компании из всех аккаунтов есть основной аккаунт, который выдавался сразу же при заключении договора с компанией. И поэтому в системе отчетности в нашей компании всех наших контрагентов удобно называть не по наименованиям (поскольку часто наименования очень похожи друг на друга),а по номерам главного аккаунта, тем более что этот номер аккаунта уникальный в пределах не одной компании, а всего справочника. В связи с этим в запросах постоянно нужно получать номер главного аккаунта (или можно даже так сказать что номер компании) и естественно этот запрос повсеместно будет проще строить, если этот номер будет являться полем таблицы компаний (UT_Companies), но с архитектурной точки зрения будет правильно в таблице компаний иметь ссылку на главный аккаунт. При этом естественно запросы усложнятся. Также при этом возникнет такая коллизия: до создания любого аккаунта, необходимо создать компанию, но компания в таком случае должна содержать ссылку на главный аккаунт, которого еще нет.
Посоветуйте, что можно сделать в этой ситуации или по Вашему мнению может лучше просто дублировать поле номера главного аккаунта в таблице компаний?
...
Рейтинг: 0 / 0
Структура базы данных
    #36352173
Naf
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
а если триггер при вставки новой компании по-умолчанию создавать аккаунт, делать его главным - заполнять ссылку в таблице компаний. Потом можно редактировать этот аккаунт отдать пользователю.
С уважением, Naf
...
Рейтинг: 0 / 0
Структура базы данных
    #36352191
Фотография Infernal V. Raven
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
rsolanov
Посоветуйте, что можно сделать в этой ситуации или по Вашему мнению может лучше просто дублировать поле номера главного аккаунта в таблице компаний?
1) дублировать
2) в аккаунтах создать поле MAIN_ACC (Y, N), соответственно править его, не допуская ситуации, что несколько акааунтов для одной компании = Y
3) новая таблица MAIN_ACCOUNTS, допустим с датами действия - тогда можно узнать, какой акааунт был главным в то или иное время

вариант нужно выбирать исходя из потребностей и затрат
...
Рейтинг: 0 / 0
Структура базы данных
    #36352411
rsolanov
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
Nafа если триггер при вставки новой компании по-умолчанию создавать аккаунт, делать его главным - заполнять ссылку в таблице компаний. Потом можно редактировать этот аккаунт отдать пользователю.
С уважением, Naf
Это принципиально можно будет сделать только в триггере типа AFTER INSERT (не INSTEAD)
А при этом придется позволить внешнему ключу в таблице компаний разрешить значение NULL.
Насколько это правильно?
...
Рейтинг: 0 / 0
Структура базы данных
    #36352547
rsolanov
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
Naf, так же в этом случае придется создавать аккаунт со значениями по умолчанию.
А представляете реакцию пользователя, когда он увидит не им созданный аккаунт с данными, совершенно несоответствующими реальной действительности?
Дублировать тоже не хотелось бы, но возможно именно в этом случае это лучший вариант.
...
Рейтинг: 0 / 0
Структура базы данных
    #36355559
divv
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
Infernal V. Ravenвариант нужно выбирать исходя из потребностей и затрат
Полностью соглашусь. Пока что нет полного набора требований, например, непонятно, нужно хранить значения основных аккаунтов для исторических данных (скорее всего, да), или только для текущих. И еще что-то может вылезти, влияющее на решение.
...
Рейтинг: 0 / 0
Структура базы данных
    #36355867
rsolanov
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
divvInfernal V. Ravenвариант нужно выбирать исходя из потребностей и затрат
Полностью соглашусь. Пока что нет полного набора требований, например, непонятно, нужно хранить значения основных аккаунтов для исторических данных (скорее всего, да), или только для текущих. И еще что-то может вылезти, влияющее на решение.
Требования есть. Исторические данные об главных аккаунтах хранить не нужно. Есть компания, а у нее есть аккаунты, один из которых ВСЕГДА будет являться главным. Это совершенно точно и эти требования будут неизменны. Так что какие мысли? Как это будет сделать более оптимально? Заранее Вам благодарен :)
...
Рейтинг: 0 / 0
Структура базы данных
    #36355872
Фотография Infernal V. Raven
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
rsolanov,

я привел вам 3 варианта
чем не устраивают?
...
Рейтинг: 0 / 0
Структура базы данных
    #36355982
baracs
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
rsolanovNafа если триггер при вставки новой компании по-умолчанию создавать аккаунт, делать его главным - заполнять ссылку в таблице компаний. Потом можно редактировать этот аккаунт отдать пользователю.
С уважением, Naf
Это принципиально можно будет сделать только в триггере типа AFTER INSERT (не INSTEAD)
А при этом придется позволить внешнему ключу в таблице компаний разрешить значение NULL.
Ну и что?
А если rsolanovпросто дублировать поле номера главного аккаунта в таблице компаний?
будет по-другому?
...
Рейтинг: 0 / 0
Структура базы данных
    #36356580
rsolanov
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
Infernal V. Ravenrsolanov,

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


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