2012-02-11 3 views
-2

У меня есть 2 вопроса относительно того, как я должен создать базу данных SQL (SQLite3). То, как я использую свою базу данных, таково:Улучшение базы данных MySQL

У меня есть прилагательное (или любое слово) & Мне нужно решить это слово в форме существительного. Поэтому для «счастливо» мне нужно разрешить это слово «счастливым» (существительное & его общей формы). Для «голодного» мне нужно разрешить это «голодным»

Q1: Большинство моих SQL-запросов будет включать в себя поиск таблицы имен для определенного слова (строки). Какой дизайн таблицы SQL лучше всего подходит для моих нужд & более эффективный с точки зрения скорости поиска/поиска?

CREATE TABLE NounTable (u_id int PRIMARY KEY, u_word varchar, u_noun varchar); 
// OR 
CREATE TABLE NounTable (u_word varchar PRIMARY KEY, u_noun varchar); 

// The majority of my queries will be searching according to the word column 
SELECT u_noun FROM NounTable WHERE u_word="hungrier"; 

Q2: Если у меня есть уникальный целочисленный идентификатор для каждой строки, когда я добавить новую строку мне нужно найти уникальное Thats целого ID уже не принятое другую строку. В моем случае каждая строка будет иметь идентификатор в порядке возрастания, поэтому для строки 1 id = 2, для строки 2 = 2 .... строка n = n.

В прошлом, чтобы добавить строку, я сначала нахожу самый большой уникальный идентификатор, а затем добавляю 1 к нему, а затем создаю эту новую строку. Но я когда-то слышал, что есть переменная SQL, я думаю, вызвал autonumber, который сделает это автоматически, это правда? Т.е., он будет автоматически увеличиваться. Так что я должен использовать это вместо этого или вы бы посоветовали мне придерживаться идентификатора как целого?

CREATE TABLE NounTable (u_id int PRIMARY KEY, u_word varchar, u_noun varchar); 
// Or shd I do this... 
CREATE TABLE NounTable (u_id autonumber PRIMARY KEY, u_word varchar, u_noun varchar); 

PS: есть большая разница между MYSQL & SQLite, если таковые имеются? Может быть, разные переменные? Или это единственная разница в том, как они хранят & поиск информации в базе данных?

ответ

2

Что касается производительности, если вы указали u_word в своей первой альтернативе, разница не будет большой. Это зависит в основном от того, какие другие таблицы у вас есть, и хотите ли вы представлять пары слов или иметь слово и его существительное.

Если у вас нет особых причин увеличивать количество ваших идентификаторов, вы должны использовать autonumber. При увеличении ключа одним вручную вы всегда подвергаете риску состояние гонки и столкновение, в то время как IIRC обрабатывается автономерами.

Смежные вопросы