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

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

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

29 ответов

8 просмотров

Более чем.

Почему бы и нет, если логика того требует? Возможно, ещё 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.

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

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

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

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

Какой-то там пердун в 90-х решил, что есть какая-то разная типизация. Кого вообще это волнует?
КТ315
49
void terminal_scroll() { memmove(terminal_buffer, terminal_buffer + VGA_WIDTH, buffer_size - VGA_WIDTH); memset(terminal_buffer + buffer_size - VGA_WIDTH, 0, VGA_WIDTH); ...
Егор
47
Всем привет! Подскажите, пожалуйста, в чем ошибка? Настраиваю подключение к MySQL. Либы лежат рядом с exe. Все как по "учебнику"
Евгений
16
А можете как-то проверить меня по знаниям по ассемблеру?
A A
132
Здравствуйте! У меня появилась возможность купить книгу "Изучай Haskell во имя добра!". Но я где-то слышал, что эта книга устарела. Насколько это правда??
E
22
Здравствуйте! Я вот на stepic решаю задачи на хаскеле https://stepik.org/lesson/8443/step/8?unit=1578 мой код import Data.List (isInfixOf) removing :: String -> [String] ->...
E
10
Камрады, кто тесно работал с vtv, хотел уточнить. Ширина column задаётся жёстко на этапе создания дерева или можно в рантайме ее менять программно (не мышкой)?
Ed Doc
10
да ладно ... что там неочевидного ? глянуть в исх-ки датасета и/или кверика чтобы понять в каком месте и как выполняется обращения к св-вам blablaSQL - минутное дело, даже е...
Сергей
7
Здесь для arm кто-нибудь кодит ?
Nothing
52
Всем привет, у меня есть сервер принимающий входящие HTTP подключения, как проверить, что подключение было через прокси или нет, есть какие то поля в заголовках по которым мо...
DS
8
Карта сайта