
Vladimir
11.07.2017
08:11:58
Ну или как писали в комментах, если у тебя уникальное имя пользователя, то можно и его ключом делать
Правда, как по мне, неэффективо шопздц

Евгений
11.07.2017
08:12:30

Ad.x ??
11.07.2017
08:12:33

Google

Vladimir
11.07.2017
08:13:08
Да и хз я про производительность join'ов потом с текстовыми полями

Ad.x ??
11.07.2017
08:14:51
а к примеру в таблице settings какойнить достаточно 1-2 текстовых колонки в качестве ключа + колонка значений. что-то типа module_id | key | value где все текст а module_id | key первичный ключ


mr
11.07.2017
08:15:59
Выбор столбцов, которые будут играть роль ключей, должен быть обоснован и предельно выверен, поскольку от них напрямую зависит производительность и целостность данных.
Ключ должен быть в какой-то степени уникальным.
Должна быть согласованность по типу данных для значения во всей схеме, а также чем ниже вероятность того, что это изменится в будущем, тем лучше.
Можно ли проверить значение на соответствие стандарту (например, ISO)?
Ключ должен быть как можно проще, чтобы можно было без трудностей использовать составные ключи.
Это своего рода конвенции, которые нужно сформулировать при проектировании базы данных. Если требования впоследствии будут разрастаться, можно и нужно вносить изменения в структуру базы, чтобы поддерживать её в актуальном состоянии.


Евгений
11.07.2017
08:16:40
с составными ключами сплошной геморрой
меняешь значение одного из полей - придётся идти во все связанные таблицы и менять там
с нынешними размерами жёстких дисков нет никакой проблемы сделать инкрементный уникальный ид
и работать дальше по нему

Ad.x ??
11.07.2017
08:18:36
для связующих таблиц в many-to-many тоже будешь инкремент совать?

Евгений
11.07.2017
08:24:10
для связующих таблиц в many-to-many тоже будешь инкремент совать?
хз, я говорю о таблицах с данными, а связующая таблица - это в какой-то степени костыль, потому что нет встроенного механизма для реализации связи М:М (по-моему, как раз в мс аксес такой механизм есть, поэтому там вообще нет понятия связующей таблицы, но в других системах это не так).

Ad.x ??
11.07.2017
08:27:05
ну вот пример таблицы настроек. для основного приложения и модулей к нему. зачем там автоинкремент?
у таблицы нет связей. в качестве ключа вполне подходят две колонки, которые дают уникальность

Евгений
11.07.2017
08:28:14
у таблицы *сейчас* нет связей

Google

Ad.x ??
11.07.2017
08:28:25
и потом не будет
такая таблица не предполагает связей )

Евгений
11.07.2017
08:28:37
конечно, можно добавить id, когда они появятся

Ad.x ??
11.07.2017
08:29:57
и поэтому на всякий случай надо сделать? ))

Евгений
11.07.2017
08:30:39

Ad.x ??
11.07.2017
08:31:02
назови причину это делать ;D

Alexandr
11.07.2017
08:32:55
унификация в рамках проекта -> проще ориентироваться -> меньше оверхэд в голове -> больше продуктивность -> профит

Евгений
11.07.2017
08:33:32
во всех базах всех фреймворокв и цмс, есть id в таблице настроек

Ad.x ??
11.07.2017
08:33:53
или к примеру иногда нужна таблица просто ключ - значение

Евгений
11.07.2017
08:34:15
это поле не занимает много места, по нему есть индекс, не жрёт произвоидительность, не вижу причин не добавить его

Ad.x ??
11.07.2017
08:34:21
зачем там ид? если в качестве ключа можно использовать тот самый ключ, который нужный

Евгений
11.07.2017
08:34:28
ключ будет текстовый?

Ad.x ??
11.07.2017
08:34:36
само собой

Евгений
11.07.2017
08:34:47
ну тогда это тот же самый uid

Ad.x ??
11.07.2017
08:35:00
допустим cron_last_run | date

Евгений
11.07.2017
08:35:07
просто его autoinc будет обеспечен другим путём

Ad.x ??
11.07.2017
08:35:25
не лог, а просто отслеживать время работы. и таких значений много для разных функций

Roman
11.07.2017
08:35:48
Всем привет) а насколько нужно декларировать возвращаемий тип функции? для чего ето нужно? может есть какието хорошие статьи на ету тему

Google

?
11.07.2017
08:35:51
Эти руки, матерь божья
http://pikabu.ru/story/iskusstvennyiy_intellekt_osvoil_parkur_5184118

Like
11.07.2017
08:38:52

Alexandr
11.07.2017
08:39:17
назови причину это делать ;D
вероятный профит от использования суррогатного ключа перекрывает недостатки его лишнего использования ... вот и вся причина

Ad.x ??
11.07.2017
08:40:29
и как ты будешь его использовать? Скажи пожалуйста

Евгений
11.07.2017
08:41:13
сколько раз написать про апдейт?

Evgeny_30
11.07.2017
08:41:36
Всем привет!

Ad.x ??
11.07.2017
08:41:58

Евгений
11.07.2017
08:42:02
считай, что использование суррогатного ключа - это бестпрактис, даже если потом у тебя не будет ни единого запроса с его использованием

Ad.x ??
11.07.2017
08:42:18
т.е. чтобы был )))

Alexandr
11.07.2017
08:43:39

Ad.x ??
11.07.2017
08:43:44
следуя твоей логике в связующих таблицах тоже нужен автоинкремент, даже если он там не нужен

Alexandr
11.07.2017
08:45:18
следует, нужен)

Ad.x ??
11.07.2017
08:45:33
;D
выглядеть это будет так: category_post_id | category_id | post_id
Индексы: category_post_id, category_id + post_id
ахахах ) когда-нибудь понадобится
возможно...

Alexandr
11.07.2017
08:47:27
в этом случае, например, станет сильно легче написание какой-нибудь тулзы, исходя из предположения, что у всех записей во всех таблицах есть уникальный id

Ad.x ??
11.07.2017
08:48:17
но не во всех таблицах нужен этот уникальный ид
в таблицу логов тоже автоинкремент будешь совать?

Google

Alexandr
11.07.2017
08:50:37
у тебя главный аргумент, что в конкретном контексте, в конкретной таблице id не нужен) ... у меня главный аргумент, что id нужен везде для унификации проекта и упрощения дальнейшей работы с ним)
мы не договоримся ?

Like
11.07.2017
08:51:08
Такс, стоп
@AlexKrasnov он говорит, что можно (нужно?) создавать таблицу без id?
Можно кикнуть его отсюда, плиз

Alexandr
11.07.2017
08:51:38
что бывают случаи, когда суррогатный ключ не нужен ... и что можно (нужно) обойтись естесственным

Like
11.07.2017
08:52:15
Не плохой аргумент
Аналогичный аргумент: я использую только telegram и google chrome, можно выкинуть 90% ОС?

Ad.x ??
11.07.2017
08:53:18

Admin
ERROR: S client not available

Like
11.07.2017
08:53:45

Ad.x ??
11.07.2017
08:54:11
ну вот к примеру создаешь ты очередь

Like
11.07.2017
08:54:15
@ilyalaba ты чет подозрительный

Ad.x ??
11.07.2017
08:54:20
в бд... тож айдишники будешь делать?

Like
11.07.2017
08:54:30
А причем тут очередь?

Ad.x ??
11.07.2017
08:54:40
эта очередь при нормальной посещалке забьется за пару месяцев

Like
11.07.2017
08:54:47
Что ты мелишь

Илья
11.07.2017
08:54:49
Добрый день можете посоветовать видео курс по php
?

Ad.x ??
11.07.2017
08:54:49
ну в каждой же таблице надо делать
автоинкремент

Google

Like
11.07.2017
08:55:03

bear
11.07.2017
08:55:07
народ веб-дизайнер это профессия ?

Like
11.07.2017
08:55:09
Иди читай что такое очереди и зачем они нужны

bear
11.07.2017
08:55:24
мой другговорит это хобби

Ad.x ??
11.07.2017
08:55:30

Dima
11.07.2017
08:55:31
Дорогие друзья. Выручите вашего коллегу.
Ему вот надо срочно, в течении 2х часов собрать красивую lading page

Like
11.07.2017
08:55:46
Они могут хранится там

Dima
11.07.2017
08:55:57
имеенно что красивую. Чтоб с паралаксом и минимумом ебатни

Ad.x ??
11.07.2017
08:56:01

Vladimir
11.07.2017
08:56:05

Dima
11.07.2017
08:56:08
в копмосере есть что такое? в дистирбутах
чтоб поставить чуть подправить и сразу полетело?

Like
11.07.2017
08:56:16

Ad.x ??
11.07.2017
08:56:28

Like
11.07.2017
08:56:36
У тебя там будут хранится команды, которые будут запускаться через месяц?

Ad.x ??
11.07.2017
08:56:53
ой иди нахер )

Like
11.07.2017
08:56:54
Если ты так боишься, то не храни их в базе, делов то