172 похожих чатов

Добрый вечер, господа профессионалы, я новичок в теме sql и

Баз Данных в общем.
Можно задать нескромный вопрос ?
Корректна ли таблица только из FK или так делать не надо?

29 ответов

10 просмотров

Более чем.

Почему бы и нет, если логика того требует? Возможно, ещё Primary Key нужен. Но не всегда, надо структуру и объем данных смотреть.

Эээ... в смысле? Т.е. что Вы имеете в виду?

Igor Chizhov
Почему бы и нет, если логика того требует? Возможн...

Если речь о реляционном проектировании, то PK нужен всегда, если что.

что вы здесь имеете в виду под FK?

Yaroslav Schekin
Если речь о реляционном проектировании, то PK нуже...

Видел я и обратные примеры ) Но в целом да, нужно.

Nikita-Sova Автор вопроса
std::mechanicus<wchar_t*> Sophronicus<void*>
что вы здесь имеете в виду под FK?

Только из вторичных ключей, что-то вроде таблицы, соединяющей остальные

Igor Chizhov
Видел я и обратные примеры ) Но в целом да, нужно.

Это примеры ошибок проектирования, не более того. ;) Т.е. создать-то можно много всего "интересного"... если не забывать принцип "write once and run away".

Nikita Sova
Только из вторичных ключей, что-то вроде таблицы, ...

Да, это нормально (и вообще "классическая" таблица для many-to-many).

Yaroslav Schekin
Это примеры ошибок проектирования, не более того. ...

Я всегда люблю приводить в пример одну довольно известную банковскую систему, в которой в бытность мою банкиром не было ни одного первичного и внешнего ключа. Индексы, правда, были, местами уникальные. И оно как-то даже работало )))

Igor Chizhov
Я всегда люблю приводить в пример одну довольно из...

Плохо спроектированных систем и БД на практике очень много, к сожалению. И они как-то даже работают. ;)

Igor Chizhov
Я всегда люблю приводить в пример одну довольно из...

Обычно они говорят "ключи - это же удар по перфомансу" 😊

𒀭
Правильно говорят.

Да я и не спорю. Любое наведение порядка, в БД ли, в разработке - это несомненный удар по "перфомансу" )

Sergey Bezrukov
Обычно они говорят "ключи - это же удар по перфома...

А из-за ФК нет возможности вставить/удалить,отредактировать, например, разное. Было у меня такое, да...

Sergey Bezrukov
Ну дык в этом вроде и смысл основной

Весь этот смысл идет лесом, когда в базу прилетает 10к записей, их нужно все разобрать и разбросать по таблицам без дублей. А главное: на все про все есть сотня миллисекунд. Первое что приходится делать - выбрасывать FK.

𒀭
Весь этот смысл идет лесом, когда в базу прилетает...

Может, стоит выбросить настолько "прекрасное" железо, а не FK? И не работать на "кофемолках" впредь? ;)

Alexander Shelemin
и поэтому во всех базах не нужны FK?

Что такое по сути FK? Это обычная проверка, не более. Причем проверка временами весьма затратная. Где в системе на каких этапах стоит проводить проверки - решать разработчику. Не нужно делать из этого панацею.

𒀭
Что такое по сути FK? Это обычная проверка, не бол...

Да-да, я много раз слышал такие сказки. А вот [сколько бы то ни было длительно эксплуатируемых] систем, где такая проверка была не на этапе БД, и при этом без проблем со ссылками, как-то не видел.

𒀭
Что такое по сути FK? Это обычная проверка, не бол...

панацею тут только вы делаете, когда говорите на основании сверхузкого кейса, что FK не нужны

Alexander Shelemin
панацею тут только вы делаете, когда говорите на о...

(к тому же FK могут давать и перформанс бонусы в виду join elimination - хоть в постгресе это и не реализовано, вроде)

Yaroslav Schekin
Да-да, я много раз слышал такие сказки. А вот [ск...

Да ладно)) Задумайтесь как реализована система у Visa или MasterCard когда карточку в банкомат вставлять будете))

𒀭
Да ладно)) Задумайтесь как реализована система у V...

Хмм... а при чём тут это? Обсуждалась конкретная тема, нет? Я имел в виду, что подобные constraints надёжно реализовать без поддержки СУБД практически невозможно — вот почему я назвал это "сказками".

Yaroslav Schekin
Хмм... а при чём тут это? Обсуждалась конкретная т...

Как раз таки когда нужно действительно надежно реализовать целостность, то СУБД вообще выбрасывается нафиг вместе с FK.

𒀭
Как раз таки когда нужно действительно надежно реа...

Странно. Я в основном видел, что обратные действия работают, а "выбрасывание" — почти никогда. О каких решениях / реализациях речь, подробнее?

Похожие вопросы

Обсуждают сегодня

30500 за редактор? )
Владимир
47
а через ESC-код ?
Alexey Kulakov
29
Чёт не понял, я ж правильной функцией воспользовался чтобы вывести отладочную информацию? но что-то она не ловится
notme
18
Добрый день! Скажите пожалуйста, а какие программы вы бы рекомендовали написать для того, чтобы научиться управлять памятью? Можно написать динамический массив, можно связный ...
Филипп
7
У меня есть функция где происходит это: write_bit(buffer, 1); write_bit(buffer, 0); write_bit(buffer, 1); write_bit(buffer, 1); write_bit(buffer, 1); w...
~
14
Недавно Google Project Zero нашёл багу в SQLite с помощью LLM, о чём достаточно было шумно в определённых интернетах, которые сопровождались рассказами, что скоро всех "ибешни...
Alex Sherbakov
5
Ребят в СИ можно реализовать ООП?
Николай
33
https://github.com/erlang/otp/blob/OTP-27.1/lib/kernel/src/logger_h_common.erl#L174 https://github.com/erlang/otp/blob/OTP-27.1/lib/kernel/src/logger_olp.erl#L76 15 лет назад...
Maksim Lapshin
20
Как передать управляющий символ в открытую через CreateProcess консоль? Собсна, есть процедура: procedure TRedirectThread.WriteData(Data: OEMString); var Written: Cardinal;...
Serjone
6
Всем привет! Имеется функция: function IsValidChar(ch: UTF8Char): Boolean; var i: Integer; ValidChars: AnsiString; begin ValidChars := 'abcdefghijklmnopqrstuvwxyzABCDE...
Евгений
44
Карта сайта