Гость
Форумы / SQLite [игнор отключен] [закрыт для гостей] / SQLite. SQLiteStudio и Foreign Key. / 5 сообщений из 5, страница 1 из 1
22.06.2019, 16:25
    #39829467
Druid8
Гость
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
SQLite. SQLiteStudio и Foreign Key.
Всем привет.

Использую программу SQLiteStudio (но вопрос к любой программе), для работы с SQLite.

Там сделал связь таблицы A по Foreign Key к таблице B, все работает.

ВОПРОС: можно ли сделать так, что бы при создании записи в таблице A она автоматом создавала в таблице B ?

То есть сейчас мне приходится в 2 раза больше делать действий. Вводить в таблицу B строки и потом в таблице A их выбирать. Но может как то можно, что бы таблица A автоматом создавала в таблице B строки с ключом??
...
Рейтинг: 0 / 0
22.06.2019, 21:19
    #39829499
Dima T
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
SQLite. SQLiteStudio и Foreign Key.
Для начала почитай теорию реляционных БД (основы про нормальные формы, страниц 20-30) и потом поймешь что твой вопрос не имеет смысла. Наверно попутно поймешь как по-другому решать свою проблему.
...
Рейтинг: 0 / 0
23.06.2019, 23:24
    #39829656
White Owl
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
SQLite. SQLiteStudio и Foreign Key.
Druid8,

Твой вопрос звучит как: "я тут поставил забор чтоб не лазили, как теперь сделать чтобы подходя к забору автоматически через него перелезали?".

Но да, сделать это можно. Есть такая штука https://www.sqlite.org/lang_createtrigger.html
...
Рейтинг: 0 / 0
24.06.2019, 16:27
    #39829964
Druid8
Гость
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
SQLite. SQLiteStudio и Foreign Key.
White Owl,

Объясняю в чем смысл.

У меня есть таблица допустим Classes, есть таблица Localization.

В Localization колонки Key RU EN ....
То есть есть ключ и переводы на этот ключ.
Key на него ссылаются другие таблицы через Foreign Key.

Есть Classes в которой колонки типа id, name вот именно name и ссылается на Localization.Key что бы потом когда делаю запрос к Classes я получаю перевод на нужный язык колонки Name.

сейчас мне приходится сначала добавлять ключ в таблицу Localization. Что бы потом добавлять записи в Classes и в name выбирать эти ключи.

Было бы удобнее если бы я создавая записи в Classes, если нет ключа по name, он сам создает его в Localization.Key.

В чем я не прав? Как сделать лучше.

Я не много работал с базами, про триггеры не знаю. Скажите если лучше их использовать.
...
Рейтинг: 0 / 0
25.06.2019, 05:04
    #39830115
White Owl
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
SQLite. SQLiteStudio и Foreign Key.
Druid8В Localization колонки Key RU EN ....Уже ужас.
А если ты добавишь новый язык, ты будешь колонку добавлять?
А если ты по какой-то причине забыл написать текст в колонку языка, а у тебя пользователь хочет этот язык. Ты будешь ему пустоту показывать?

Локализация вообще делается совершенно другими способами, похожими на базы данных, но технически другими.
Скажи на каком языке ты пишешь, подскажем как это делать правильно.

В принципе можно и в базе данных хранить переводы, но тогда делают таблицу переводов в виде трех полей:
Код: sql
1.
2.
3.
4.
5.
create table Localization (
   key,
   language,
   translation
)


При этом ключ стараются делать строкой на "основном" языке. Не важно что у тебя за язык включен сейчас - у тебя будет либо перевод по паре key+language, а если такой строки не найдено (не перевел еще) то можно сам ключ показать пользователю.

Можно делать ключ и суррогатным, но тогда тебе надо будет следить чтобы был обязательно перевод на основной язык. Это делается обычно внешней вспомогательной программой. Ты в своем коде все строки которые надо бы перевести оформляешь специальным образом, прогоняешь исходник этой программой и получаешь один "основной" язык.
Это и будет у тебя созданием ключей которые ты хочешь.
...
Рейтинг: 0 / 0
Форумы / SQLite [игнор отключен] [закрыт для гостей] / SQLite. SQLiteStudio и Foreign Key. / 5 сообщений из 5, страница 1 из 1
Целевая тема:
Создать новую тему:
Автор:
Найденые пользователи ...
Разблокировать пользователей ...
Читали форум (0):
Пользователи онлайн (0):
x
x
Закрыть


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